查询工作正常phpmyadmin从PHP运行时返回0行

我真的很难过.这是php:

更新:我已经转义输入(在我以不同的方式执行此操作之前,但不知道mysql_real_escape_string).另外,我用单引号替换双引号,但同样的问题正在发生.以下是更新的代码:

$request = mysql_real_escape_string($_POST['id']);
$colName = mysql_real_escape_string($_POST['col_name']);

function executeAssoc1($q)
{
    $r = mysql_query($q) or die(mysql_error() . ' ' . $q);
    $rass = mysql_fetch_assoc($r);
    return $rass;
}

foreach(array_keys($_POST) as $pitem)
{

    if($pitem == (...what I want it to...))
    {
        $pitem_name = mysql_real_escape_string(rawurldecode($pitem));

        $qf = "SELECT * FROM possible_values WHERE table_id=$request AND col_name='$colName' AND value = '$pitem_name'";
        $qfr = executeAssoc1($qf);
        var_dump($pitem_name);
        echo '<br>';
        var_dump($qf);
        echo '<br>';
        var_dump($qfr);
    }

}

以下是该代码在一个循环中输出的部分内容:

string(37) “1 .New England (Northeast region)”
string(122) “SELECT * FROM possible_values WHERE table_id=3 AND col_name=’DIVISION’ AND value = ‘1 .New England (Northeast region)’”
bool(false)

现在,当我将该查询复制到phpmyadmin SQL编辑器时,它确实返回了一个结果.我甚至尝试使用LIKE“%…%”,如here所示,但同样的事情发生(phpmyadmin返回一行,php返回0行).

最佳答案 从
rawurldecode()手册:

Note: rawurldecode() does not decode plus symbols (‘+’) into spaces. urldecode() does.

如果你输出你的mySQL查询,我打赌你的strting看起来像这样:

1+.New+England+(Northeast+region)

尝试urldecode()作为手动条目建议.

点赞