k*******p 发帖数: 8821 | 1 问一个问题,包子奉上給有用的解决办法。
有一段小代码,是在一个表Customer_table查询Customer_ID.如果这个id 存在则输出"
good",否则输出"bad".'gooduser'这个id是表中存在的,执行代码的结果是输出“good
"。假如我把$uid换成一个不存在的id,比如$uid='bdxhsbfhbfhc';结果还是输出"good"
.我如果新建一个php文件,初始一个不存在的id, $uid='bdxhsbfhbfhc';输出“bad".
我如果把$uid换成一个存在的id,比如$uid='gooduser',结果还是“bad".也就是第一
次的结果永远存下来了。这是为什么呢?
$mysqli = mysqli_connect("localhost", "root", "abcde", "table1");
if (mysqli_connect_errno()) {
printf("Connect failed: %sn", mysqli_connect_error());
exit();
}
else {
$uid='gooduser';
$sql="select * from Customer_table where Customer_ID = '".$uid."' ";
$res=mysqli_query($mysqli,$sql);
if ($res){
echo "good";
}
else
{
echo "bad";
}
}
mysqli_free_result($res);
mysql_cloase($mysqli);
?> | s****y 发帖数: 983 | 2 brower的cache,server的cache | g****z 发帖数: 1135 | 3 I think it's because mysqli_query returns a resultset (in case of select
statement) regardless of rows not being found. So "if($res)" always return
true. Use "if($res->num_rows >0)"
出"
good
good"
【在 k*******p 的大作中提到】 : 问一个问题,包子奉上給有用的解决办法。 : 有一段小代码,是在一个表Customer_table查询Customer_ID.如果这个id 存在则输出" : good",否则输出"bad".'gooduser'这个id是表中存在的,执行代码的结果是输出“good : "。假如我把$uid换成一个不存在的id,比如$uid='bdxhsbfhbfhc';结果还是输出"good" : .我如果新建一个php文件,初始一个不存在的id, $uid='bdxhsbfhbfhc';输出“bad". : 我如果把$uid换成一个存在的id,比如$uid='gooduser',结果还是“bad".也就是第一 : 次的结果永远存下来了。这是为什么呢? : : $mysqli = mysqli_connect("localhost", "root", "abcde", "table1"); : if (mysqli_connect_errno()) {
| k*******p 发帖数: 8821 | 4 谢谢!
包子已奉上。
也一样感谢2楼的回复。
【在 g****z 的大作中提到】 : I think it's because mysqli_query returns a resultset (in case of select : statement) regardless of rows not being found. So "if($res)" always return : true. Use "if($res->num_rows >0)" : : 出" : good : good"
| p*****u 发帖数: 214 | 5 这是正解,不要判断返回结果,除非数据库出错或有问题res才会非true,另外最好在
取数目之前初始一下数目为0,然后
可以用$res->num_rows,看看返回记录是否为零来判断。
【在 g****z 的大作中提到】 : I think it's because mysqli_query returns a resultset (in case of select : statement) regardless of rows not being found. So "if($res)" always return : true. Use "if($res->num_rows >0)" : : 出" : good : good"
|
|