我试图同时将数据插入2个单独的表中 - 但是收到以下错误:
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 'INSERT INTO
StoreTable (Name, Price, Description, ImageName, Colors, Sizes, SKU,' at line 1
这是我的代码:
// INSERT the NEW Store Item & its image into the database:
$query = "BEGIN; INSERT INTO StoreTable(Name, Price, Description, ImageName, Colors,
Sizes, SKU, Category, DateAdded) VALUES ('". $newStoreItemName ."', '". $newStoreItemPrice ."',
'". $newStoreItemDescription ."', '". $newStoreItemImageName ."',
'". $newStoreItemColors ."', '". $newStoreItemSizes ."', '".$StoreNewItemSKU."',
'".$newStoreItemCategory."', '".$storeItemDateAdded."');
INSERT INTO StoreCategoriesTable (CategoryName, DateModified) VALUES('".$newStoreItemCategory ."',
'". $storeItemDateAdded."'); COMMIT;";
// Echo the query statement to see what it looks like:
echo "Here's the full query:<br/><br/>" .$query. "<br/><br/>";
$result = $mysqli->query($query);
那个echo语句表明看起来像是一个正确的MySQL语句 - 但显然它不是因为我收到了错误:
BEGIN; INSERT INTO StoreTable (Name, Price, Description, ImageName, Colors,
Sizes, SKU, Category, DateAdded) VALUES ('Shirt', '12.98', '100% Cotton',
'TShirt.Png', 'Red, Blue, Black', 'S, M, L', '88nnkLb', 'Childrens Apparel',
'2015-03-28 15:51:41'); INSERT INTO StoreCategoriesTable (CategoryName,
DateModified) VALUES('Childrens Apparel', '2015-03-28 15:51:41'); COMMIT;
由于我是一名拥有最少MySQL知识的iOS开发人员,所以我非常感谢您提供帮助。谢谢!
答案 0 :(得分:3)
作为php的安全功能,您只能使用mysqli::query()
一次运行一个查询。我建议您将这些查询分解为单独的查询,确保它们正确保存,然后将它们提交到数据库。有一个很好的例子可以找到here。
另外:您可以查看mysqli::multi_query,这可以获得类似的结果。
我在这里还有另外一件事要提。 请注意安全性!执行这样的查询会打开数据库以进行SQL注入攻击。我强烈建议你看一下如何将参数绑定到查询this。 (这将自动逃避确保查询无问题地运行所需的一切。)