PHP MySQL what's wrong?


PHP MySQL what's wrong?

此代码有什么问题?

    if( isset($_POST['user'])){
   $uzy = $_POST['user'];
   if(!empty($uzy)){
      $q = sprintf("SELECT `id` FROM `users` WHERE user= '".mysql_real_escape_string($uzy)."'");
      $s = mysql_query($q);
    if($wQ=mysql_query($q)) {
       $wQr = mysql_num_rows($wQ);
          if($wQr == 0){
             echo "<div style ='font:21px Trebuchet MS; color:#ff0000'>wrong login</div>";
          }else if($wQr == 1){
         $uzyt = mysql_result($wQ, 0, 'id');
         $_SESSION['uzyt'] = $uzyt;
         $sql = "SELECT * FROM work2 WHERE id='$s'";
    ...
    ...
    ...
}
}
}
}

问题就在这里:$sql = "SELECT * FROM work2 WHERE id='$s'";,因为当我以$sql = "SELECT * FROM work2 WHERE id='1'";为例时,一切都正常。是语法错误还是什么?

您严重错误地使用和理解了PHP/mysql的操作方式:

  $s = mysql_query($q);
  ^^^--- query result handle
     $sql = "SELECT * FROM work2 WHERE id='$s'"; 
                                           ^^---- can't use a result handle here

问题在于您的查询无法将$s转换为其原始值。它把它当作一根绳子。也许你应该像一样做

$sql="SELECT*FROM work2 WHERE id='"$s"'";

在调试时,还有一件事可能会派上用场,那就是使用echo语句。你试过做吗

echo$sql

你无论如何都不会在这里发帖:)

PS-我们非常乐意提供帮助:)继续来,继续提出问题