为什么这只适用于phpmyadmin但不适用于php?

时间:2013-12-23 04:07:19

标签: php mysql sql

为什么我将它粘贴到phpmyadmin时会有以下工作,但是如果我尝试使用php运行查询它不会?

$sql="BEGIN;
INSERT INTO nodes (admin_id,title)
VALUES (1,'test');
INSERT INTO themes (theme_id,directory)
VALUES (LAST_INSERT_ID(),'test');
COMMIT;";
$sql_result=mysql_query($sql);

这与LAST_INSERT_ID()有关......但我不知道是什么?!

2 个答案:

答案 0 :(得分:2)

您无法在mysql_query内运行多个查询。所以你必须打破它

mysql_query('BEGIN');
mysql_query('INSERT INTO nodes (admin_id,title) VALUES (1,"test")');
$id = mysql_insert_id();
mysql_query('INSERT INTO themes (theme_id,directory) VALUES (' . $id . ', "test")');
mysql_query('COMMIT');

请注意链接中的红色框。所有这些功能都已弃用

答案 1 :(得分:1)

正如其他人所提到的,PHP的基本MySQL API不支持单个语句中的多个查询。相对于以下函数,请尝试使用MySQLi:

  

http://php.net/manual/en/mysqli.multi-query.php