php与mysql通信_php与mysql数据库通信三步曲

本文详细介绍了PHP连接MySQL数据库的三步曲,包括创建数据库和表、插入数据以及从数据库中读取数据并显示在前端。通过示例代码展示了如何进行数据库连接、设置编码、创建表、插入和查询数据。
摘要由CSDN通过智能技术生成

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

1、php创建数据库与表;

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

3、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 "数据库创建成功
";} 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 . "
" . $e->getMessage();}

?>

把这段代码塞到php文件里面,通过访问这个php页面就可以创建一个lyt的数据库,数据库里面有MyGuests表,表里面有id,product,guestname,phone,address,message,reg_date字段,但是里面还是空空如也,我们要往里面插入数据,比如说把客户填写的一个表单数据提交到数据库,就要用以下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 . "
" . mysqli_error($conn);

}

?>

把这段代码扔到一个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 "

while($field = mysql_fetch_field($result)){//使用while输出表头

echo "

 ".$field->name." ";

}

echo"

";

while($rows = mysql_fetch_row($result)){//使用while遍历所有记录,并显示在表格的tr中

echo "

";

for($i = 0; $i < count($rows); $i++)

echo "

 ".$rows[$i]."";

}

echo "

";

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

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

$servername = "localhost";//数据库主机

$username = "root";//数据库用户名

$password = "root";//数据库密码

$dbname = "lyt";//将要创建的数据库名

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值