使用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', '[email protected]')";

        

    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', '[email protected]');";

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

    VALUES ('Julie', 'Dooley', '[email protected]')";

    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还没弄明白。弄好了在记录吧。

猜你喜欢

转载自blog.csdn.net/mainmaster/article/details/114686335