简体   繁体   English

PHP MySQL怎么了?

[英]PHP MySQL what's wrong?

What's wrong with this code? 此代码有什么问题?

    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'";
    ...
    ...
    ...
}
}
}
}

The problem is here: $sql = "SELECT * FROM work2 WHERE id='$s'"; 问题在这里: $sql = "SELECT * FROM work2 WHERE id='$s'"; , because when I put for example $sql = "SELECT * FROM work2 WHERE id='1'"; ,因为当我输入$sql = "SELECT * FROM work2 WHERE id='1'"; everything works. 一切正常。 Is is wrong syntax or what? 是错误的语法还是什么?

You're badly mis-using and mis-understanding how PHP/mysql operate: 您严重滥用和误解了PHP / mysql的操作方式:

  $s = mysql_query($q);
  ^^^--- query result handle

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

The problem lies because your query is unable to convert $s into its original value. 问题在于,您的查询无法将$ s转换为其原始值。 Its treating it as a string. 将其视为字符串。 Probably you should do it like 也许你应该这样做

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

One more thing that may come in handy while debugging is the use of echo statements. 调试时可能需要做的另一件事是使用echo语句。 Had you tried doing 你试过做

echo $sql 回声$ sql

you wouldnt had posted here anyways :) 你无论如何都不会在这里发布:)

PS - We are more than happy to help :) Keep coming and keep bringing the questions 附注-我们非常乐意为您提供帮助:)持续不断,不断提出问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM