0

我可以在 PHPMyAdmin 中运行以下查询,但由于某种原因,当我在 PHP 中的 mysql 方法中运行它时出现语法错误:

INSERT INTO product (model, stock_status_id, image, price, date_available, status, date_added, date_modified) 
VALUES('SP44152', 5, 'data/products/SP44152-1.jpg', '18.04', '2012-06-18', 1, '2012-06-19 00:31:35', '2012-06-19 00:57:01'); 
SET @lastid = LAST_INSERT_ID(); 
INSERT INTO product_description (product_id, language_id, name, Description) 
VALUES(@lastid, 1, 'Product item 1', 'Product Description'); 
INSERT INTO product_reward (product_id, customer_group_id, points) 
VALUES(@lastid, 1, 0);  
INSERT INTO product_to_category (product_id, category_id) 
VALUES(@lastid, 67); 
INSERT INTO product_to_store (product_id, store_id) VALUES(@lastid, 0);

我得到的错误代码:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @lastid = LAST_INSERT_ID(); INSERT INTO product_description (product_i' at line 3

我试过删除 ; 从每一行的末尾开始,我尝试删除字段“状态”,因为我知道这也是您可以在 MYSQL 中使用的东西。互联网上似乎没有太多可以帮助确定此原因的内容。

非常欢迎任何反馈。

4

1 回答 1

1

mysql_query不喜欢多个分号分隔的语句:

mysql_query() 向与指定链接标识符关联的服务器上当前活动的数据库发送一个唯一查询(不支持多个查询)。

将您的查询分解为多个查询并一个接一个地执行它们:

mysql_query("INSERT INTO product ...", $conn);
$lastid = mysql_insert_id($conn); // you can use mysql_insert_id() PHP function
mysql_query("INSERT INTO product_description ...", $conn);
mysql_query("INSERT INTO product_reward ...", $conn);
mysql_query("INSERT INTO product_to_category ...", $conn);
mysql_query("INSERT INTO product_to_store ...", $conn);

PS:我建议你看看函数的替代mysql_*

于 2012-06-19T08:19:01.997 回答