【发布时间】:2013-10-10 19:14:45
【问题描述】:
我发现了类似的问题,但还不能解决我的问题。以下是相关代码:
$query = "SELECT * FROM conceptos WHERE descripcion = '$descripcion'";
if ($result = mysql_query($query,$connection)){
if (mysql_num_rows($result) > 0){
//Do something
} else {
die($query);
exit;
}
} else {
die(mysql_errno() . ' - ' . mysql_error());
exit;
}
我的连接或权限没有问题,因为这段代码 sn-p 在循环中,其他查询进入“做某事”部分。但是当我接受回显查询并在 phpMyAdmin 中执行它时,它会按预期返回 1 个值。为什么?什么原因会导致这种行为?提前感谢您的任何建议。
【问题讨论】:
-
将
die($query);更改为die(mysql_error())并查看它的输出。 -
另请注意,
mysql_函数已被弃用,如果可以,您应该考虑切换到mysqli或PDO。 -
@AmalMurali mysql_errno() 输出 0 而 mysql_error() 什么也不输出。该查询没有错误,因为它输入的是 if 部分而不是代码的 else 部分。问题是查询没有返回任何值,并且相同的查询(从模具中)复制并粘贴到 myphpadmin 中得到一个结果!
-
如果描述是一些可变文本,那么 a) 编码可能会被弄乱 b) 太多的字符转义。 (b) 的示例:您可以在描述中包含
&amp;或&lt;,在 html 中输出后变为&和<。 -
@SergeSeredenko 我认为问题可能出在编码上...... $description 变量有一个单引号,但我在构造 $query 字符串变量之前使用 mysql_real_escape_string() 对其进行了转义。
标签: php mysql phpmyadmin