使用php读写mysql数据库并显示到网页上

由于工作的原因,需要了解下bs模式下的读写数据库的流程,将试验过程梳理一下。

我采用的是phpstudy搭建数据库,mysql数据库已经搭建完成,名称为2018版本,如下图:

由于我前期安装过apache的服务,所以有些冲突,有些时候可能需要将mysql服务手动启动才可以正常连接,验证方法为从mysql管理器->phpmyadmin可以打开如下界面即为连接成功。

可以看到有多个数据库,我使用上面的test库。

在定义的根目录下(我这里是D:\phpstudy\PHPTutorial\WWW)新建立一个php文件。内容如下

<?php 

header("Content-Type:text/html;charset=utf-8");//如果没有这句话,后面的汉字显示是乱码;

//code = $_POST['code'];

$status = "";

$success = "";

$scookies = "";

 

//连接数据库  使用mysqli模式

$username="root";

$userpass="root";

$servername = "localhost";

$dbname = "test";

$conn = "";//数据库变量

//连接数据库函数,参数分别是数据库地址,用户名,密码,数据库的名称

function connectdb($server,$name,$pwd,$databasename)

{

    //创建连接 ,连接数据库,并判断是否连接成功

    $conn = new mysqli($server,$name,$pwd,$databasename);

    // 检测连接

    if ($conn->connect_error) 

    {

        die("link db failire: " . $conn->connect_error);

        echo "connect database [" . $server . " ]  failire <br/>";

        return $conn;

    } 

    else

    {

        echo "connect database [" . $server . "]  successful <br/>";

        return $conn;

    }

}

//检测表是否存在

function check_table_is_exist($sql,$find_table)

{

    $row=mysql_query($sql);

    $database=array();

    $finddatabase=$find_table;

    while ($result=mysql_fetch_array($row,MYSQL_ASSOC))

    {

    $database[]=$result['Database'];

    }

    unset($result,$row);

    mysql_close();

    /*开始判断表是否存在*/

    if(in_array($find_table,$database))

    {

    return true;

    }

    else

    {

    return false;

    }

}

//create new table

function createnewtable($conn)

{

    // 使用 sql 创建数据表

    $sql = "CREATE TABLE MyGuests (

    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 

    firstname VARCHAR(30) NOT NULL,

    lastname VARCHAR(30) NOT NULL,

    email VARCHAR(50),

    reg_date TIMESTAMP

    )";

     if ($conn->query($sql) == TRUE) 

     {

         echo  "Table MyGuests created successfully <br/>";

    } 

    else 

    {

        echo  "create database table error: " . $conn->error . " <br/>";

        

        return false;

    }

}

 

function insertrecord($conn,$tablename)

{    

    //echo -e "\r\n";

    //插入一条数据

    $sql = "INSERT INTO MyGuests (firstname, lastname, email)

    VALUES ('John', 'Doe', 'john@example.com')";

        

    if ($conn->query($sql) == TRUE) 

    {        

        print "insert one record successful <br/>";

        

    } else 

    {

        echo  "Error: " . $sql . "<br/>" . $conn->error;

        echo  "\r\n";

    } 

    $sql="";

    //插入多条数据

    $sql .= "INSERT INTO MyGuests (firstname, lastname, email)

    VALUES ('Mary', 'Moe', 'mary@example.com');";

    $sql .= "INSERT INTO MyGuests (firstname, lastname, email)

    VALUES ('Julie', 'Dooley', 'julie@example.com')";

    if ($conn->multi_query($sql) == TRUE) {

        echo  "insert records successful. <br/>";

    } else {

        echo  "Error: " . $sql . "<br>" . $conn->error;

    }

    return true;    

}

 

function showtabledata($conn,$sql)

{

    $conn->query($sql);

}

function del_data($conn,$sql)

{

    print $sql . "</br>";

    if($conn->query($sql)==true)

    {

        echo "delete records successful </br>";

    }

    else

    {

        echo "delete records failire </br>";

    }

}

function show_alldata_fromtable($servername,$username,$userpass,$dbname,$tablename)

{

    $conn = mysqli_connect($servername,$username,$userpass,$dbname);

    if(mysqli_connect_errno($conn))

    {

        echo "connect mysql failed " . mysqli_connect_error();

        return;

    }

    

    echo "connect successful<br>";

    //第二步设置相应的字符编码

    //$mysqli->set_charset("utf8");

    //$setting = 'set names utf8';

    //mysqli_query($conn,$setting);

    //echo "query successful <br>" ;//. $conn . $setting;

    

    //第三步进行查询

    $sql = 'SELECT * FROM MyGuests';

    //执行查询语句,返回result为数据内容

    if($result = mysqli_query($conn,$sql))

    {

        //得到查询的记录的个数,

        $rowcount = mysqli_num_rows($result);

        echo "return {$rowcount} records <br>";

        

        echo 

        "<center>

            <table>

            <tr>

                <th>序号        </th>

                <th>姓          </th>

                <th>名          </th>

                <th>电子邮件    </th>

                <th>时间日期    </th>               

            </tr>

            </table>

        </center>";

        for($i = 0;$i <$rowcount;$i ++)

        {

            //按顺序一次读取一条记录,保存到sqldata中

            $sqldata = mysqli_fetch_assoc($result);

            echo     

            "<center>

            <table>            

            <tr>

                <td>".$sqldata['id']."</td>

                <td>".$sqldata['firstname']."</td>

                <td>".$sqldata['lastname']. "</td>

                <td>".$sqldata['email']. "</td>

                <td>".$sqldata['reg_date']. "</td>

            </tr>

            </table>

            </center>";

        }

 

        mysqli_free_result($result);

    }    

   

    //第五步把结果写到缓存文件

    $file = "sqlcache.txt";

    $msg = serialize($sqldata);

    //echo $msg;

    $fp = fopen($file,"w");

    fputs($fp,$msg);

    fclose($fp);

}

 

//连接数据库

$conn = connectdb($servername,$username,$userpass,$dbname);

createnewtable($conn);

$sql = "DELETE FROM myguests ";

//del_data($conn,$sql);

insertrecord($conn,'MyGuests');

//$conn->close();

show_alldata_fromtable($servername,$username,$userpass,$dbname,'',$conn);

$conn->close();

 

?>

注意 createnewtable 函数,可根据实际情况是否执行;

通过上面的文件,可以实现连接数据库,创建表单,插入单条、多条记录,删除记录,显示数据库的内容,将数据库内容序列化到文件,按一个简单的格式显示到网页中;

这里在网页上显示换行需要注意(我是要给新手),要使用<br>来实现,刚开始还试验  \n 或者\r\n,走了一个弯路,记录到这里。

下面开始考虑如何设计一个界面,具体用php设计还是使用js或者vue还没弄明白。弄好了在记录吧。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
【完整课程列表】 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第03章 数据库的基本操作(共6页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第04章 数据表的基本操作(共28页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第05章 数据类型和运算符(共17页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第06章 MySQL函数(共76页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第07章 查询数据(共50页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第08章 插入、更新与删除数据(共12页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第09章 索引(共13页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第10章 存储过程和函数(共20页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第11章 视图(共20页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第12章 触发器(共11页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第13章 MySQL权限与安全管理(共30页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第14章 数据备份与还原(共21页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第15章 MySQL日志(共23页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第16章 性能优化(共23页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第17章 MySQL Replication(共27页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第18章 MySQL Workbench 的使用(共18页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第19章 MySQL管理利器-MySQL Utilities(共5页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第20章 读写分离的利器-MySQL Proxy(共8页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第21章 精通MySQL存储引擎(共31页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第22章 PHP操作MySQL数据库(共16页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第23章 PDO数据库抽象类库(共12页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第24章 开发网上商城(共6页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第25章 论坛管理系统数据库设计(共6页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第26章 新闻发布系统数据库设计(共9页).ppt
要实现PHP配置MySQL读写分离,首先需要配置好MySQL的主从复制。主要原理是判断SQL语句是否是SELECT语句,如果是则走主库,否则走从库。在PHP中,可以通过以下步骤来实现: 1. 配置MySQL主从复制:确保主数据库将更新同步到从数据库。可以参考中提供的示例代码来配置。 2. 在PHP代码中,使用数据库连接库(如PDO或mysqli)来连接到主从数据库。根据需要,配置主数据库和从数据库的连接参数。 3. 在执行SQL语句之前,检查SQL语句的类型。如果是SELECT语句,则使用数据库的连接来执行;如果是其他类型的语句,则使用数据库的连接来执行。 以下是一个简单的示例代码,展示了如何在PHP中配置MySQL读写分离: ```php // 主数据库连接配置 $masterHost = '主数据库主机名'; $masterUsername = '主数据库用户名'; $masterPassword = '主数据库密码'; $masterDatabase = '主数据库名称'; // 从数据库连接配置 $slaveHost = '从数据库主机名'; $slaveUsername = '从数据库用户名'; $slavePassword = '从数据库密码'; $slaveDatabase = '从数据库名称'; // 连接主数据库 $masterConnection = new PDO("mysql:host=$masterHost;dbname=$masterDatabase", $masterUsername, $masterPassword); // 连接从数据库 $slaveConnection = new PDO("mysql:host=$slaveHost;dbname=$slaveDatabase", $slaveUsername, $slavePassword); // 执行SQL语句 $sql = "SELECT * FROM table_name"; $isSelectQuery = (stripos($sql, 'SELECT') === 0); // 判断是否是SELECT语句 if ($isSelectQuery) { // 使用数据库连接执行SELECT语句 $statement = $masterConnection->query($sql); } else { // 使用数据库连接执行其他类型的语句 $statement = $slaveConnection->query($sql); } // 处理查询结果 $results = $statement->fetchAll(PDO::FETCH_ASSOC); // 输出查询结果 foreach ($results as $row) { echo $row['column_name'] . '<br>'; } ``` 请注意,这只是一个简单的示例代码,实际应用中可能需要进行更复杂的配置和处理。具体的配置和代码实现可能会根据你使用PHP框架或库而有所不同。你可以参考中的示例代码,根据自己的需求进行适当的修改和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PHP实现的mysql读写分离操作示例](https://download.csdn.net/download/weixin_38545117/13733603)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [常用mysql数据库配置文件](https://download.csdn.net/download/zslsh44/88278582)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [ThinkPHP配置简单的mysql读写分离](https://blog.csdn.net/weixin_34071713/article/details/94105081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

six2me

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值