我在这介绍一下PHP的mysqli,这个命令既可以面向对象编程又可以面向过程编程,运用预编译还可以较有效的预防SQL注入问题。直接给一个例子代码(下面的代码没有使用预编译,面向对象进行):
<?php $conn=new mysqli("localhost","root","root","test"); $conn->query("set names 'utf8'"); $sql="INSERT INTO `user` (`name`,`password`) VALUE (\"Peter\",\"123456\")"; if($conn->query($sql)) echo "操作成功"; else echo "操作失败"; $conn->close(); ?>
(下面的代码使用了预编译,面向对象进行)
<?php $conn=new mysqli("localhost","root","root","test"); //数据库地址,用户名,密码,数据库名 $conn->query("set names 'utf8'"); //修改字符集 $sql="INSERT INTO `user` (`name`,`password`) VALUE (?,?)"; //SQL语句,问号处是预编译后要绑定的参数 $conn_stmt=$conn->prepare($sql); //预编译 $comm_stmt->bind_param("ss",$name,$pass); //绑定参数 $name="Peter"; #pass="123456"; //提示实际操作不用用这么简单的密码 if($conn_stmt->execute()) echo "操作成功"; else echo "操作失败"; //执行并判断结果 $conn_stmt->close(); //关闭预编译 $conn->close(); //关闭连接 ?>
//使用面向过程方法连接数据库 $conn= mysqli_connect("gxyiovmx.2365.dnstoo.com","dingyifeng_f","zxcvbn","dingyifeng"); //使用面向对象方法连接数据库 $db=new mysqli("gxyiovmx.2365.dnstoo.com","dingyifeng_f","zxcvbn","dingyifeng"); //使用PDO方式链接数据库 $dsn='mysql:host='.'gxyiovmx.2365.dnstoo.com'.';dbname='.'dingyifeng'.';'; $dbh=new PDO($dsn,"dingyifeng_f","zxcvbn");