使用 PHP 在一个语句中执行多个 SQL 查询
在这个编程难题中,用户寻求一种方法将多个 SQL 查询组合成一个单一声明。他们提供了由三个单独的查询组成的示例代码:
DELETE FROM aktywne_kody WHERE kodsms ='$kodSMSgracza' AND typkodu ='$id'; mysql_query($query) or die(mysql_error()); INSERT INTO uzyte_kody (gracz, kodsms, typkodu) VALUES ('$nickGracza', '$kodSMSgracza', '$id'); mysql_query($query) or die("Błąd MySQL X04"); INSERT INTO do_odebrania (gracz, itemDATA, itemQTY) VALUES ('$nickGracza', '$itemDATA', '$itemQTY'); mysql_query($query) or die("Błąd MySQL X05");
解决方案
要使用 PHP 和 MySQL 在一条语句中执行多个 SQL 查询,关键是在 mysql_connect 初始化期间传递 65536 作为第五个参数。下面是一个示例:
$conn = mysql_connect('localhost','username','password', true, 65536 /* here! */) or die("cannot connect"); mysql_select_db('database_name') or die("cannot use database"); mysql_query(" INSERT INTO table1 (field1,field2) VALUES(1,2); INSERT INTO table2 (field3,field4,field5) VALUES(3,4,5); DELETE FROM table3 WHERE field6 = 6; UPDATE table4 SET field7 = 7 WHERE field8 = 8; INSERT INTO table5 SELECT t6.field11, t6.field12, t7.field13 FROM table6 t6 INNER JOIN table7 t7 ON t7.field9 = t6.field10; -- etc ");
在此示例中,所有查询将作为单个语句的一部分顺序执行。需要注意的是,后续命令如 mysql_fetch_*、mysql_num_rows 和 mysql_affected_rows 只对第一个执行的查询有效。
mysql_close 问题
关于以下问题关闭数据库连接,一般建议完成所有SQL查询后调用mysql_close($db)来释放连接,释放资源。
以上是如何使用 PHP 在一条语句中执行多个 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!