查询在phpmyadmin中工作,但在PHP脚本中不起作用


Query works in phpmyadmin but not in PHP script

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

$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 个值。为什么?什么原因会导致这种行为?提前感谢您的任何建议。

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

试试这个"SELECT * FROM CONCEPTOS"。如果它有效,您在"WHERE...">

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

这将确保在万一的情况下扩展描述。

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

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

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

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

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

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

mysqli_query($con,$query);

而不是

mysql_query($query);

因为其折旧

源:

从数据库 php 下载文件错误