$query = "SELECT content FROM article WHERE link='$article_link'";
$result = $conn -> query ($query );
if ($result->num_rows > 0 ) {
//一些输出代码
}else {
echo "没有结果!";
echo "Error : (". $conn->errno .") ". $conn->error;
}
如果把 query 语句直接复制到 mysql 界面,是有输出一条结果的。
但是在页面上显示“没有结果! Error : ()”,就是没有结果,但是也没有 mysql 错误。
不知道是哪里出错,求各位大神指教
1
quadpixels 2015-08-22 05:27:44 +08:00
确定 Query 语句在 MySQL 界面和在运行时是同一条吗?
我猜有可能在执行时,符合“ link==$article_link ”的条目其实在数据库中不存在,所以返回了 0 行的空结果。 因为顺利执行了 SQL 查询,仅仅是结果为空,所以不是错误。 (我构造了一个类似的情况然后在查询最后加上了 “ WHERE 1==0 ” 试出来的,不一定正确哈) |
2
ljbha007 2015-08-22 09:02:33 +08:00
查不到数据不一定代表出错了啊 仅仅是没有这条符合条件的数据而已
|
3
cxbig 2015-08-22 09:31:19 +08:00
如果直接运行有数据条目返回,那么比对一下那个$query 的结果。
把第一行的赋值结果用 var_dump 或其他 log 的方式输出,比对字符串是否一致。 (双引号内的变量养成习惯用花括号框起来:"...{$var}...") 然后检查$conn 是否连接到正确的数据库,用其他 sql 命令验证一下$conn 的有效性。 |
4
branchzero 2015-08-22 10:05:25 +08:00
result : 0 不等于一定有错吧。。。
你最后输出的玩意也是有些莫名其妙的。 |
5
wulikanhua 2015-08-22 10:08:23 +08:00
目测应该是引号的问题,你把单引号放外面,双引号放里面
|
6
orvice 2015-08-22 10:11:05 +08:00
'$article_link'
去掉引号试试 |
7
inoris 2015-08-22 10:12:25 +08:00
$query = "SELECT content FROM article WHERE link='" . $article_link . "'";
我一般是这样写的 :) |
8
yeyeyuky 2015-08-22 11:23:28 +08:00
引号问题吧,变量在单引号中是不解释的,你把变量放进单引号内会直接变带$符的字符串。如果想用引号解释变量,放在双引号内就可以。
|
9
zjqzxc 2015-08-22 16:09:56 +08:00
其实,,没必要手动 close 。。每个脚本执行完了 php 自己会去关闭数据库连接的,除非声明是长连接。
|