跳过if并直接进入else语句的PHP代码
由于某种原因,它不会进入我的if声明 这可能是很明显的事情,但已经很晚了,我在这里被困了半个小时跳过if并直接进入else语句的PHP代码,php,mysql,debugging,if-statement,Php,Mysql,Debugging,If Statement,由于某种原因,它不会进入我的if声明 这可能是很明显的事情,但已经很晚了,我在这里被困了半个小时 <?php $id = $_GET['id']; if ($id == "") { //it goes here correctly } else { $result = mysql_query("SELECT * FROM posts WHERE id= $
<?php
$id = $_GET['id'];
if ($id == "") {
//it goes here correctly
} else {
$result = mysql_query("SELECT * FROM posts WHERE id= $id");
if ($result == "0") {
//It does not go here.
} else {
//It goes here correctly
}
}
}
?>
非常感谢Luca如果您的查询正常,则返回一个资源,
$result==“0”
始终是false
。如果您的查询正常,则返回一个资源,$result==“0”
始终是false
。我不知道为什么您希望从mysql\u查询
获取0
作为返回值
(我的重点):
用于选择、显示、描述、解释和其他返回语句
resultset,mysql_query()在成功时返回资源,在成功时返回FALSE
错误
[……]
使用mysql_num_rows()可以找出一个数据库返回了多少行
选择语句或mysql\u infected\u rows()以了解有多少行
受DELETE、INSERT、REPLACE或UPDATE语句的影响
如果用户不这样做,mysql_query()也将失败并返回FALSE
具有访问查询引用的表的权限
因此,通过猜测,您真正想要的代码是:
$id = $_GET['id'];
if ($id == "") {
//it goes here correctly
} else {
$result = mysql_query("SELECT * FROM posts WHERE id= $id");
if ($result === false || mysql_num_rows($result) === 0) {
//It always goes to else statement.
} else {
//It goes here correctly
}
}
我不知道为什么您希望从
mysql\u query
获取0
作为返回值
(我的重点):
用于选择、显示、描述、解释和其他返回语句
resultset,mysql_query()在成功时返回资源,在成功时返回FALSE
错误
[……]
使用mysql_num_rows()可以找出一个数据库返回了多少行
选择语句或mysql\u infected\u rows()以了解有多少行
受DELETE、INSERT、REPLACE或UPDATE语句的影响
如果用户不这样做,mysql_query()也将失败并返回FALSE
具有访问查询引用的表的权限
因此,通过猜测,您真正想要的代码是:
$id = $_GET['id'];
if ($id == "") {
//it goes here correctly
} else {
$result = mysql_query("SELECT * FROM posts WHERE id= $id");
if ($result === false || mysql_num_rows($result) === 0) {
//It always goes to else statement.
} else {
//It goes here correctly
}
}
即使您没有该id的任何数据,它也会返回“true”,因为您的查询已成功执行。 相反,您可以这样尝试:
$result = mysql_query("SELECT * FROM posts WHERE id= $id");
$rows=mysql_num_rows($result);
if($rows>0){
//you have data to work with
}
else{
//no data
}
即使您没有该id的任何数据,它也会返回“true”,因为您的查询已成功执行。 相反,您可以这样尝试:
$result = mysql_query("SELECT * FROM posts WHERE id= $id");
$rows=mysql_num_rows($result);
if($rows>0){
//you have data to work with
}
else{
//no data
}
哦,明白了。。我对PHP非常陌生。感谢you@LucaDeCaprio不客气。请记住,始终可以使用
var\u dump
查看变量的内容。噢,明白了。。我对PHP非常陌生。感谢you@LucaDeCaprio不客气。请记住,您始终可以使用var\u dump
查看变量的内容。谢谢您,这非常有效。我对PHP相当陌生。非常感谢。@LucaDeCaprio很乐意帮忙。如果你认为某个答案解决了你的问题,你应该将答案标记为已接受。谢谢你,这非常有效。我对PHP相当陌生。非常感谢。@LucaDeCaprio很乐意帮忙。如果你认为某个答案解决了你的问题,你应该将该答案标记为已接受。