执行SQL命令,无论如何通过PHP脚本与Mysql数据库交互,过程都是一样的,创建一个SQL语句,再传递给执行查询的函数。
在mysqli类中提供了几种执行SQL命令的方法,其中最常用的是query()方法。
对于insert、update、delete等不会返回数据的SQL命令,query()方法在SQL命令成功执行时返回true。在此基础上还可以通过mysqli对象中的affected_rows属性猎取有多少条记录发生变化而且使用mysqli对象中的insert_id()方法可以返回最后一条insert命令生成的AUTO_INCREMENT编号值。
如果在执行SQL命令发生错误,query()方法将返回false,此时可以通过mysqli对象中的errno、error属性获取错误编号和错误原因。
注:query()方法每次调用只能执行一条SQL命令,如果想一次执行多条命令,就必须使用mysqli对象中的multi_query()方法。如果想以不同的参数多次执行一条SQL命令,最有效率的办法是先对那条命令做一些预处理然后再执行。
<?php
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name");
if(mysqli_connect_errno()){
printf("连接失败:%s<br>",mysqli_connect_error());
exit();
}
/*执行插入命令,并获取它的自动编号值*/
if($mysqli->query("insert into 表名(列1,列2) value (‘值1,值2‘)")){
echo "改变的记录数:".$mysqli->affected_rows."<br>";
echo "新插入的ID值:".$mysqli->insert_id."<br>";
}
$mysqli->close();
?>