社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

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

viandro • 4 年前 • 274 次点击  

在网上搜索了几个小时后,我看不到问题的答案。
正在尝试获取上次更新行的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
 
274 次点击  
文章 [ 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);