当前位置: 秋叶网络博客 网站建设 ◊ php与mysql数据库通信三步曲

php与mysql数据库通信三步曲

作者:秋叶 发表时间:2015年11月18日

之前说过php跟js的最大的不同点就是能够直接与数据库打交道,存储信息,读取信息,与用户交互。这里总结了php连接数据库的比较全面和靠谱的三个步骤,简称三步曲。主要包括:

1、php创建数据库与表;

2、php往数据库插入内容;

3、php从数据库里面读取内容到前台显示出来;

首先是创建数据库和表:

<?php
$servername = "localhost";//数据库主机
$username = "root";//数据库用户名
$password = "root";//数据库密码
$dbname = "lyt";//将要创建的数据库名

// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {die("连接出错: " . $conn->connect_error);}

// 开始创建数据库
$sql = "CREATE DATABASE lyt default character set utf8 collate utf8_general_ci";//红色为设置数据库编码格式,网上很多教程都漏了这一步,导致各种乱码现象
if ($conn->query($sql) === TRUE) {echo "数据库创建成功<br/>";} else {echo "数据库创建失败: " .$conn->error;}
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 创建表和字段
$sql = "CREATE TABLE MyGuests(//红色为表名,下面的红色部分为表里面的字段,同样也要设置编码,VARCHAR是字段存储数据的类型
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
product VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_general_ci,
guestname VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
phone VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
address VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
message VARCHAR(550) CHARACTER SET utf8 COLLATE utf8_general_ci,
reg_date TIMESTAMP
)default character set utf8";
$conn->exec($sql);echo "数据表创建成功";
}
catch(PDOException $e){echo $sql . "<br>" . $e->getMessage();}
?>

把这段代码塞到php文件里面,通过访问这个php页面就可以创建一个lyt的数据库,数据库里面有MyGuests表,表里面有id,product,guestname,phone,address,message,reg_date字段,但是里面还是空空如也,我们要往里面插入数据,比如说把客户填写的一个表单数据提交到数据库,就要用以下php代码了:

<?php
$servername = "localhost";//数据库主机
$username = "root";//数据库用户名
$password = "root";//数据库密码
$dbname = "lyt";//将要创建的数据库名
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("数据库连接失败: " . mysqli_connect_error());
}
mysqli_query($conn,"SET NAMES UTF8");//红色为设置数据库编码格式,网上很多教程都漏了这一步,导致各种乱码以及错误现象
$sql = "INSERT INTO MyGuests (product, guestname, phone, address, message)
VALUES ('".$_POST['pro']."','".$_POST['gname']."', '".$_POST['phone']."', '".$_POST['addr']."', '".$_POST['mess']."')";//蓝色部分分别为表单input的name值,注意表单类型必须为post。

if (mysqli_query($conn, $sql)) {
echo "提交成功";
} else {
echo "错误: " . $sql . "<br>" . mysqli_error($conn);
}
?>

把这段代码扔到一个form.php文件里面,作为表单的处理文件,表单上通过引入这个文件,如:

<form name="form" method="post" action="form.php">,这样提交表单的时候就会把表单里面填写的数据插入到数据库。除了表单你也可以手动指定插入一些数据,上面的那部分代码写成死的就行了,如:

VALUES ('哈哈','你好', '我很好', '你呢?', '我不好!')";通过这一步,数据库总算有内容了。可是光有内容不行啊,我该怎么看到这些数据呢?我总不会去数据库里面看吧,还是要把数据库内容在前端表现出来才方便些,那么就要php从数据库里面读取数据了,代码如下:

$conn = mysql_connect("localhost","root","root");//连接数据库,请填写你自己的用户名密码
mysql_select_db("lyt");//选择MYSQL数据库
mysql_query("set names utf8");//设置为utf8编码
$result = mysql_query("select * from myguests",$conn); //执行SQL查询指令,myguests为表名
echo "<table border=1 style='margin:0 auto;'><tr>";
while($field = mysql_fetch_field($result)){//使用while输出表头
    echo "<td> ".$field->name." </td>";
}
echo"</tr>";
while($rows = mysql_fetch_row($result)){//使用while遍历所有记录,并显示在表格的tr中
    echo "<tr>";
    for($i = 0; $i < count($rows); $i++)
        echo "<td> ".$rows[$i]."</td>";
}
echo "</tr></table>";

把这段代码扔到另一个php文件里面,通过访问这个php文件可以把指定的数据库,数据库表里面的内容以表格形式呈现出来。

其实这三段代码都用到了同一小块代码:

$servername = "localhost";//数据库主机 $username = "root";//数据库用户名 $password = "root";//数据库密码 $dbname = "lyt";//将要创建的数据库名

可以把这小段代码另存为另一php文件,通过include 'data.php';引入,这样方便修改。

1
文章作者: 秋叶网络博客,本站鼓励原创。
转载请注明本文地址:https://www.mizuiren.com/blog/413.html
目录:网站建设标签:php数据库 9025次阅读
登 录
点击获取验证码
还没账号?点击这里