2

我发现了类似的问题,但还不能解决我的问题。以下是相关代码:

$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;
}

我的连接或权限没有问题,因为此代码段位于循环内,其他查询进入“做某事”部分。但是当我接受回显查询并在 phpMyAdmin 中执行它时,它会按预期返回 1 个值。为什么?什么原因会导致这种行为?提前感谢您的任何建议。

4

5 回答 5

4

我遇到了这个问题,发现这是因为我通过从 MS Word 直接复制/粘贴到数据库而将我的数据库垃圾了。粘贴插入了特殊的倾斜撇号,PHPMYADMIN 显然可以解析,但我的 php 代码不能。一旦我用标准的单引号替换了那些,一切都很好。

于 2015-08-07T02:33:31.067 回答
2

试试这个“SELECT * FROM conceptos”。如果它有效,您在“WHERE ...”中有错误的查询

于 2013-10-10T19:31:42.290 回答
1

您确定您的查询正在搜索正确的描述吗?双引号应该扩展所有内部变量,但你也有单引号,以防复制到 stackoverflow 问题。

这将确保扩展描述以防万一。

$query = "SELECT * FROM conceptos WHERE descripcion = '" . $descripcion . "'";

其次,您是否按照@crotos 的建议验证了您正在使用的变量内容?

mysql_ 也已弃用,因此您应该使用 PDO,或者至少使用 mysqli_。

于 2013-10-10T21:10:37.700 回答
0

我也遇到了这个问题并使用以下方法解决了它:

mysqli_query($con,$query);

代替

mysql_query($query);

因为它贬值了

资源:

从数据库php文件下载错误

于 2013-10-18T09:37:16.957 回答
0

您可以尝试设置您的 mysql 服务器的一般查询日志,并查看真正执行了哪些查询。见http://dev.mysql.com/doc/refman/5.1/en/query-log.html

另外,检查您的编码。也许您的 mysql 连接是 ISO8859-1 并且您的表字段是 UTF-8(或相反)。您的数据中是否有任何重音符号或特殊字符?

于 2013-10-10T21:17:36.593 回答