我真的很难过.这是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()作为手动条目建议.