查询在phpmyadmin中有效,但在PHP脚本中无效

时间:2013-10-10 19:14:45

标签: php mysql phpmyadmin

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

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

5 个答案:

答案 0 :(得分:4)

I had this problem and found that it was because I junked up my database by copy/pasting directly to the database from MS Word. Pasting had inserted special slanted apostrophes that PHPMYADMIN could apparently parse but my php code could not. Once I replaced those with a standard single quote, all was well.

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您确定您的查询正在搜索正确的说明吗?双引号应该扩展所有内部变量,但是如果存在复制到stackoverflow问题,你也会有单引号。

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

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

其次,您是否根据@crotos?

的建议验证了您正在使用的变量内容?

mysql_也不推荐使用,所以你应该使用PDO,或者至少使用mysqli _。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

mysqli_query($con,$query);

而不是

mysql_query($query);

因为它的折旧

源:

File Downloading error from database php