php连接MySQL的两种方式对比
记录一下PHP连接MySQL的两种方式。
先mock一下数据,可以执行一下sql。
/*创建数据库*/
CREATEDATABASEIFNOTEXISTS`test`;
/*选择数据库*/
USE`test`;
/*创建表*/
CREATETABLEIFNOTEXISTS`user`(
namevarchar(50),
ageint
);
/*插入测试数据*/
INSERTINTO`user`(name,age)VALUES('harry',20),('tony',23),('harry',24);
第一种是使用PHP原生的方式去连接数据库。代码如下:
<?php
$host='localhost';
$database='test';
$username='root';
$password='root';
$selectName='harry';//要查找的用户名,一般是用户输入的信息
$connection=mysql_connect($host,$username,$password);//连接到数据库
mysql_query("setnames'utf8'");//编码转化
if(!$connection){
die("couldnotconnecttothedatabase.\n".mysql_error());//诊断连接错误
}
$selectedDb=mysql_select_db($database);//选择数据库
if(!$selectedDb){
die("couldnottothedatabase\n".mysql_error());
}
$selectName=mysql_real_escape_string($selectName);//防止SQL注入
$query="select*fromuserwherename='$selectName'";//构建查询语句
$result=mysql_query($query);//执行查询
if(!$result){
die("couldnottothedatabase\n".mysql_error());
}
while($row=mysql_fetch_row($result)){
//取出结果并显示
$name=$row[0];
$age=$row[1];
echo"Name:$name";
echo"Age:$age";
echo"\n";
}
其运行结构如下:
Name:harryAge:20
Name:tonyAge:23
第二种是使用PDO的方式去连接数据库,代码如下:
<?php
$host='localhost';
$database='test';
$username='root';
$password='root';
$selectName='harry';//要查找的用户名,一般是用户输入的信息
$pdo=newPDO("mysql:host=$host;dbname=$database",$username,$password);//创建一个pdo对象
$pdo->exec("setnames'utf8'");
$sql="select*fromuserwherename=?";
$stmt=$pdo->prepare($sql);
$rs=$stmt->execute(array($selectName));
if($rs){
//PDO::FETCH_ASSOC关联数组形式
//PDO::FETCH_NUM数字索引数组形式
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$name=$row['name'];
$age=$row['age'];
echo"Name:$name";
echo"Age:$age";
echo"\n";
}
}
$pdo=null;//关闭连接
其结果与第一种相同。
以上所述就是本文的全部内容了,希望能够对大家熟练掌握mysql有所帮助。