php
  • mysql
  • 2011-07-17 74 views 1 likes 
    1

    我试图找出为什么我的脚本不会删除我的表中的一行的麻烦。删除函数抛出mySQL错误

    每个用户都有一个随机密钥分配给他们。我需要说删除行表,其中随机密钥等于向用户...

    <?php 
    
    $userRand = $_GET['Rand']; 
    
    $delUser = mysql_query("DELETE from users WHERE randomkey = '" . mysql_real_escape_string($userRand)); 
         if(! $qResult) 
          { 
           die('Could not delete data: ' . mysql_error()); 
          } 
         elseif($qResult) 
          { 
           echo "deleted"; 
          } 
    
    ?> 
    

    以下输出...

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''111111111' at line 1 
    
    +1

    完全不相关,但对于删除操作,您应该使用POST而不是GET。这将防止一些问题(如url中带有此脚本的图像) – regilero

    +0

    事实上,对于修改的POST,GET仅用于检索。 – Wrikken

    回答

    2

    你错过了在你的PHP代码中的结束'

    $delUser = mysql_query("DELETE from users WHERE randomkey = '" . mysql_real_escape_string($userRand) . "'"); 
    
    1

    您不关闭SQL字符串。

    $delUser = mysql_query(
        sprintf("DELETE from users WHERE randomkey = '%d'", mysql_real_escape_string($userRand) 
    ); 
    
    相关问题