php - 上次更新的行 php 脚本中的 Mysql-空查询错误

标签 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 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() [function.mysqli-query]:空查询…在线… 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在附近使用的正确语法...

感谢您的帮助。

最佳答案

编辑: 您尝试在最后几行显示 $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);

关于php - 上次更新的行 php 脚本中的 Mysql-空查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20311232/

相关文章:

php - 如何处理 php 中 eval 函数的解析错误

php检查用户名是否存在于数据库中

mysql - 在 mysql 中使用别名不起作用

php - 如何将所有可能的 WHERE 选项发送到 mysqli?

php - SQL InnoDB 为一个 LIKE 值检查多个列

php - 如何使base64图像保存更快?

mysql - 为什么带有 CAST、CONVERT 和 FORMAT 的 SELECT 行不起作用?

mysql - 无法将数据从 Cassandra 导出到 MySql

php - 为什么只有一些 mysqli 查询有效?

php - 为什么我的 PHP 登录系统总是出现错误 500