Py学习  »  DATABASE

警告:mysqli::query():第23行的c:\ Program Files>(x86)ampps\ampps\www\websiteelke\php\registeren.php中的空查询[重复]

viandro • 4 年前 • 281 次点击  

在网上搜索了几个小时后,我看不到问题的答案。
正在尝试获取上次更新行的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服务器版本相对应的手册,以获得使用near-

谢谢你的帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44300
 
281 次点击  
文章 [ 3 ]  |  最新文章 4 年前
Gopal Joshi
Reply   •   1 楼
Gopal Joshi    10 年前

试试这样的

$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);  
vee
Reply   •   2 楼
vee    10 年前

你在打电话 mysqli_query 你的代码中有两次。第一条路是正确的,第二条路是错误的。在第一个调用中传递sql字符串,但是在第二个调用中传递结果。

根据你的代码,我相信你想 $result if 声明如下:

if (!$result)  
{  
  die('Error: ' . mysqli_error($con));  
}
Mehdi
Reply   •   3 楼
Mehdi    10 年前

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