我现在坐了几个小时,试图通过我的PHP脚本传递多个查询。
基本上,我想在地址文件夹中查询最后插入的索引,然后将索引保存为变量" @ address",以便我可以在下一个查询中使用它等等。
SQL脚本运行正常,但是,只要我在PHP脚本中使用它,它就不会插入任何新数据。
此外,我不想将其拆分为多个单个查询,因为此脚本将用于Web应用程序,其中将处理大量新注册,因此重要的是,当两个客户注册时同时,确保以正确的方式分配外键。
任何建议都表示赞赏。
<?php
$link = mysqli_connect("localhost", "root", "test", "test");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = 'SET @address = (select max(idaddress) from test.address) + 1; SET @customer= (select max(idcustomer) from test.customer) + 1;
SET @contract= (select max(idcontact) from test.contract) + 1;
INSERT INTO `test`.`address` (`idaddress`, `street`, `number`, `zip`) VALUES (@address, "main street", "584", "54545");
INSERT INTO `test`.`customer` (`idcustomer`, `name`, `surname`, `customeraddress`) VALUES (@customer, "Smith", "Michael", @address);
INSERT INTO `test`.`contract` (`idcontract`, `customernumber`) VALUES (@contract, @costumer);
';
echo $query; // for testing purposes
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
mysqli_free_result($result);
}
} while (mysqli_next_result($link));
}
mysqli_close($link);
?>
c0mplexity
答案 0 :(得分:0)
使用此而不是你的。希望它适合你。
$query = "SET @address = (select max(idaddress) from test.address) + 1";
$query = "SET @customer= (select max(idcustomer) from test.customer) + 1";
$query = "SET @contract= (select max(idcontact) from test.contract) + 1";
$query = "INSERT INTO `test`.`address` (`idaddress`, `street`, `number`, `zip`) VALUES (@address, 'main street', "584", "54545")";
$query = "INSERT INTO `test`.`customer` (`idcustomer`, `name`, `surname`, `customeraddress`) VALUES (@customer, 'Smith', 'Michael', @address)";
$query = "INSERT INTO `test`.`contract` (`idcontract`, `customernumber`) VALUES (@contract, @costumer)";