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有所帮助。