此代码有什么问题?
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-我们非常乐意提供帮助:)继续来,继续提出问题