上次更新的php脚本行中出现Mysql空查询错误
在网上搜索数小时后,我看不到问题的答案。上次更新的php脚本行中出现Mysql空查询错误,php,mysql,mysqli,Php,Mysql,Mysqli,在网上搜索数小时后,我看不到问题的答案。 正在尝试获取上次更新行的id。这是我的php脚本- $con = mysqli_connect("localhost","DB_NAME","PWD"); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } mysqli_select_db($con,"DB") or die ("no d
正在尝试获取上次更新行的id。这是我的php脚本-
$con = mysqli_connect("localhost","DB_NAME","PWD");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_select_db($con,"DB") or die ("no database");
$result=mysqli_query($con,"SET @update_ID := 0;
UPDATE TABLE_234 SET PLAYERNAME = PETER, ID = (SELECT @update_ID := ID)
WHERE PLAYERNAME IS NULL
LIMIT 1;
SELECT @update_ID ");
if (!mysqli_query($con,$result))
{
die('Error: ' . mysqli_error($con));
}
echo $ID;
mysqli_close($con);
错误-警告:mysqli_query()… 错误:您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获取可在附近使用的正确语法
谢谢您的帮助。您在代码中调用了两次
mysqli\u query
。第一条路是正确的,第二条路是错误的。在第一次调用中,您传递的是SQL字符串,而在第二次调用中,您传递的是结果
根据您的代码,我相信您希望检查if
语句中的$result
,如下所示:
if (!$result)
{
die('Error: ' . mysqli_error($con));
}
试试这样的
$con = mysqli_connect("localhost","DB_NAME","PWD");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_select_db($con,"DB") or die ("no database");
$result=mysqli_query($con,"SET @update_ID := 0;
UPDATE TABLE_234 SET PLAYERNAME = PETER, ID = (SELECT @update_ID := ID)
WHERE PLAYERNAME IS NULL
LIMIT 1;
SELECT @update_ID ");
if (!$result)
{
die('Error: ' . mysqli_error($con));
}
echo $ID;
mysqli_close($con);
编辑:
您尝试在最后一行中显示$ID;但是你在php代码中是在哪里设置的呢
试试这个:
$con = mysqli_connect("localhost","DB_NAME","PWD");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_select_db($con,"DB") or die ("no database");
$sql="SET @update_ID := 0;
UPDATE TABLE_234 SET PLAYERNAME = PETER, ID = (SELECT @update_ID := ID)
WHERE PLAYERNAME IS NULL
LIMIT 1;
SELECT @update_ID as ID";
if (mysqli_multi_query($con,$sql))
{
do
{
// Store first result set
if ($result=mysqli_store_result($con))
{
while ($row=mysqli_fetch_row($result))
{
$ID=$row[0];
}
}
}
while (mysqli_next_result($con));
}
echo "ID=" . $ID;
mysqli_close($con);
谢谢你的回答。使用您的代码,我得到一个错误:您的SQL语法有一个错误;查看与您的MySQL服务器版本对应的手册,以了解在“UPDATE TABLE_234 SET PLAYERNAME=PETER,ID=(在第2行选择@update\u ID:=”。不知道有什么问题……我们必须使用mysqli\u multi\u查询,因此请回答编辑后的问题,再次尝试感谢您的帮助。我的问题似乎出现在该语句上方;此处-错误:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near的正确语法。)更新表_234 SET PLAYERNAME=PETER,ID=(在第2行选择@update\u ID:=”。不知道哪里出了问题…问题是因为您正试图使用
mysqli\u query
执行多个sql语句。您需要mysqli\u multi\u query
。请查看此处的文档:。非常感谢。错误:您的sql语法有错误;请检查与您的查询对应的手册。)MySQL服务器版本,以便在“updatetable\u 234 SET PLAYERNAME=PETER,ID=”附近使用正确的语法(在第2行选择@UPDATE\u ID:=”。有什么想法吗?