首页 >数据库 >mysql教程 >可以在单个 PHP 语句中执行多个 SQL 查询吗?

可以在单个 PHP 语句中执行多个 SQL 查询吗?

Linda Hamilton
Linda Hamilton原创
2024-11-24 06:41:10240浏览

Can Multiple SQL Queries Be Executed in a Single PHP Statement?

使用 PHP 在一条语句中执行多个 SQL 查询

问题:

可以多个SQL 查询被合并到单个语句中PHP?

上下文:

问题涉及到单独执行多个 SQL 查询的场景:

$query = "DELETE FROM aktywne_kody WHERE kodsms ='$kodSMSgracza' AND typkodu ='$id'";
mysql_query($query) or die(mysql_error());

$query = "INSERT INTO uzyte_kody (gracz, kodsms, typkodu) VALUES ('$nickGracza', '$kodSMSgracza', '$id')";
mysql_query($query) or die("Błąd MySQL X04");

$query = "INSERT INTO do_odebrania (gracz, itemDATA, itemQTY) VALUES ('$nickGracza', '$itemDATA', '$itemQTY')";
mysql_query($query) or die("Błąd MySQL X05");

答案:

是的,可以使用 PHP 在单个语句中执行多个 SQL 查询mysql_connect() 的特定参数。

将 65536 作为第五个参数传递给 mysql_connect():

$conn = mysql_connect('localhost','username','password', true, 65536 /* here! */) or die("cannot connect");
mysql_select_db('database_name') or die("cannot use database");

设置此参数后,可以在单个语句中执行多个 SQL 查询:

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_affected_rows 之类的函数可用于检索第一个查询插入或影响的行数。但是,像 mysql_fetch_* 这样的函数只会为第一个查询返回值,而不会为语句中的后续查询返回值。

以上是可以在单个 PHP 语句中执行多个 SQL 查询吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn