MYSQL PHP通配符
我有一个由AJAX调用的php脚本,它总是不返回我希望看到的通配符结果。不知道怎么了。奇怪的是我试图在DB中查找不寻常的字符,比如=。-,;,等等。我正在构建的应用程序是一个英文字符到盲文查找 这是我的密码MYSQL PHP通配符,php,mysql,Php,Mysql,我有一个由AJAX调用的php脚本,它总是不返回我希望看到的通配符结果。不知道怎么了。奇怪的是我试图在DB中查找不寻常的字符,比如=。-,;,等等。我正在构建的应用程序是一个英文字符到盲文查找 这是我的密码 $ENG = "english phrase" // Could be Equal sign, dash whatever $ENG_WILD = $ENG."%"; //Add in wildcard $result = mysql_query("SELECT * FROM $DB_TAB
$ENG = "english phrase" // Could be Equal sign, dash whatever
$ENG_WILD = $ENG."%"; //Add in wildcard
$result = mysql_query("SELECT * FROM $DB_TABLE WHERE ENG LIKE '$ENG' OR '$END_WILD' ");
$row = mysql_fetch_array( $result );
$result = mysql_query("SELECT * FROM $DB_TABLE WHERE ENG LIKE '$ENG' OR '$END_WILD' ");
if (mysql_num_rows($result)==0) {
die($Failed . mysql_error());
}
// keeps getting the next row until there are no more to get
while($row = mysql_fetch_array( $result )) {
// Print out the contents of each row
echo $box."Dots needed for..".$row['ENG']."..are..".$row['BR_PAR']."..The Rule that applies..".$row['RULE']."</p>".$box_end;
}
我试着用*代替%但失败了。下面是数据库中ENG:=Nemeth Code:等号下的一个条目示例
如果我以输入作为一个整体运行上面的脚本,我会得到正确的结果,但是如果以=或=Nemeth运行脚本,我将不会得到任何结果。我不明白-我本以为通配符会让我得到我想要的。谢谢大家。您的变量是$ENG\u-WILD,但您在mysql\u查询函数中使用了$END\u-WILD。ENG vs END
如果您解决了这个问题,但它仍然不起作用,请记住,只有当短语出现在该字段的开头时,在结尾使用%才会匹配。在开始和结束时使用一%,如果它包含你的短语在开始,在任何中间,或在结束。
SELECT * FROM $DB_TABLE WHERE ENG LIKE '$ENG' OR '$END_WILD'
可能没有做你认为的事。在括号中,它是这样做的:
SELECT * FROM $DB_TABLE WHERE (ENG LIKE '$ENG') OR ('$END_WILD')
当我认为你想要的时候:
SELECT * FROM $DB_TABLE WHERE ENG LIKE '$ENG' OR ENG LIKE '$END_WILD'
查找“this”和“this%”也是多余的,因为第二个也将返回“this”
您也在毫无明显原因地两次执行完全相同的查询。我猜有很多代码我们没有看到
最后,结果为零并不意味着您的查询失败,该查询可能没有结果。Nice Catch。。。感觉像是一个完整的Tard,但问题仍然存在。请稍等一分钟,如果我手动将%放入POST Search字段,它会正常工作;因此,当PHP在%SQL上标记时,会发生一些事情,SQL没有正确识别它?我必须以某种特殊的方式将%声明到PHP字符串中吗?因此,如果我手动将th%放入通过POST发送到PHP的字符串中,我会得到一个正确的响应th&盲文符号。我在代码中没有看到任何$u POST变量。你能在这里用完整的代码更新原始的问题或评论吗?这样我们就可以清楚地看到你在做什么了?