[英]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.