SQL查询工作得很好,但现在当我尝试将其与PHP一起使用时,查询失败

SQL查询工作得很好,但现在当我尝试将其与PHP一起使用时,查询失败,php,mysql,sql,Php,Mysql,Sql,我正在尝试使用外键跨多个表添加数据。我第一次使用SQL transaction是因为我读到了关于它的好东西 我有以下SQL查询,在phpmyadmin中非常有效: BEGIN; INSERT INTO `webInfo` (`id`, `webItem`, `webDescription`, `webText`) VALUES(NULL,'tagheuer Watch','Watch','Watch'); INSERT INTO `valuationNotepad` (`id` ,`valu

我正在尝试使用外键跨多个表添加数据。我第一次使用SQL transaction是因为我读到了关于它的好东西

我有以下SQL查询,在phpmyadmin中非常有效:

BEGIN;
INSERT INTO `webInfo` (`id`, `webItem`, `webDescription`, `webText`)
  VALUES(NULL,'tagheuer Watch','Watch','Watch');
INSERT INTO `valuationNotepad` (`id` ,`valuationNotepad1`, `valuationNotepad2`, `valuationNotepad3`, `valuationNotepad4`) 
  VALUES(LAST_INSERT_ID(),'Watch', 'Watch', 'Watch', 'Watch');
INSERT INTO stock (`id`,`listCost`,`productName`,`totalCost`,`rsp`,`rspDate`,`rspPrev1`,`rspPrev1Date`,`rspPrev2`,`rspPrev2Date`,`rspPrev3`,`rspPrev3Date`,`rspPrev4`,`rspPrev4Date`,`webID`,`valuationNotepadID`,`ringSizeID`,`addedBy`,`dateAdded`,`stockLevel`) VALUES (NULL,30000,'Tagheur Watch',3000,4000,'2020-04-15',50000,'2020-04-15',50000,'2020-04-15',60000,'2020-04-15',65000,'2020-04-15',LAST_INSERT_ID(),LAST_INSERT_ID(),2,'JD',CURRENT_TIMESTAMP,60);
COMMIT;
如前所述,这在phpmyadmin中非常有效。但是,当我尝试将它与PHP和PHP变量一起使用时,查询失败。下面是使用PHP变量的查询

$addStock = "BEGIN;
INSERT INTO `webInfo` (`id`, `webItem`, `webDescription`, `webText`)
  VALUES(NULL,'$webItem','$webDescription','$webText');
INSERT INTO `valuationNotepad` (`id` ,`valuationNotepad1`, `valuationNotepad2`, `valuationNotepad3`, `valuationNotepad4`) 
  VALUES(LAST_INSERT_ID(),'$valuationNotepad1', '$valuationNotepad2', '$valuationNotepad3', '$valuationNotepad4');
INSERT INTO stock (`id`,`listCost`,`productName`,`totalCost`,`rsp`,`rspDate`,`rspPrev1`,`rspPrev1Date`,`rspPrev2`,`rspPrev2Date`,`rspPrev3`,`rspPrev3Date`,`rspPrev4`,`rspPrev4Date`,`webID`,`valuationNotepadID`,`ringSizeID`,`addedBy`,`dateAdded`,`stockLevel`) VALUES (NULL,$listCost,$productName,$totalCost,$rsp,$rspDate,$prevRSP1,$prevRSP1Date,$prevRSP2,$prevRSP2Date,$prevRSP3,$prevRSP3Date,$prevRSP4,$prevRSP4Date,LAST_INSERT_ID(),LAST_INSERT_ID(),2,'JD',CURRENT_TIMESTAMP,$stockAdded);
COMMIT;";

$stockAddedResult = mysqli_query($conn, $addStock);
我收到一个错误,请检查与您的MySQL服务器版本对应的手册,以了解在我的浏览器中使用“插入到
webInfo
中”的正确语法

我一直试图解决这个错误,因为这是我查询中的某种SQL关键字错误,但现在我不相信这是问题所在

如果有人对这个问题有任何想法,请告诉我


谢谢

mysqli\u查询
不支持多个查询

您应该使用
mysqli\u mutli\u query()
函数,或者更改实现以显式打开事务,发送3个插入并在结束时提交,或者在一个查询失败时回滚

例如:

<?php
$link = mysqli_connect("localhost", "user1", "datasoft123", "hr");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_ONLY);

mysqli_query($link, "SELECT first_name, last_name FROM actor LIMIT 1");
mysqli_commit($link);

mysqli_close($link);

您不能将多个查询与
mysqli\u查询
一起使用,您需要使用
mysqli\u多个查询
。谢谢,这已删除错误消息。但是,数据没有被成功添加(这表明即使没有显示哈哈,也有错误)