用于mysql的PHP搜索引擎
嗯。我有一段代码,应该使用html表单中的文本和布尔字段来搜索mysql数据库。这是一个学习项目,所以不要着急 其思想是检查文本字段的输入,并查看复选框中是否有任何内容。复选框工作正常,但当我为文本框的邮政编码添加代码时,我得到了可怕的结果 “警告:mysql\u real\u escape\u string()[function.mysql real escape string]:第36行的C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\criteriasearch.php中的用户‘ODBC’@‘localhost’(使用密码:否)的访问被拒绝” 我不太明白这一点。下面是复选框的代码。这本身就很好用用于mysql的PHP搜索引擎,php,mysql,Php,Mysql,嗯。我有一段代码,应该使用html表单中的文本和布尔字段来搜索mysql数据库。这是一个学习项目,所以不要着急 其思想是检查文本字段的输入,并查看复选框中是否有任何内容。复选框工作正常,但当我为文本框的邮政编码添加代码时,我得到了可怕的结果 “警告:mysql\u real\u escape\u string()[function.mysql real escape string]:第36行的C:\Program Files\Apache Software Foundation\Apache2.
if(isset($_POST['search']) && !empty($_POST['search'])){
foreach($_POST['search'] as $key=>$value){
if($value==1) $search[] = "$key";
$searchstring = implode(' AND ', $search);
}
当我添加以下代码时:
$post_map = array(
'postcode'=>'candidate_contact_details.postcode'
);
if(isset($_POST['postcode']) && !empty($_POST['postcode'])) {
foreach ($_POST['postcode'] as $key) {
if (array_key_exists($key, $post_map));
$search[] = $post_map[$key] . '=' . mysql_real_escape_string($value);
}
它只允许我访问该部分,但第一部分有效。我很确定我的括号或类似的东西有问题,但我一生都无法解决,任何帮助都将不胜感激
提前感谢尝试将mysql\u connect调用中的链接标识符作为第二个参数传递给mysql\u real\u escape\u字符串。为了正常工作,它需要一个已经建立的MySQL连接。尝试将MySQL\u connect调用中的链接标识符作为第二个参数传递给MySQL\u real\u escape\u字符串。为了正常工作,它需要一个已经建立的MySQL连接。我猜不应该有;在这条线上,对吗?“如果(array_key_存在($key$post_map));”谢谢。分号阻止了它。我现在只需要想办法让它搜索。复选框部分工作正常,但名为postcode的文本框工作不正常。我要检查一些东西。我猜不应该有一个;在这条线上,对吗?“如果(array_key_存在($key$post_map));”谢谢。分号阻止了它。我现在只需要想办法让它搜索。复选框部分工作正常,但名为postcode的文本框工作不正常。我要检查一些东西。你能给我一个简单的样品吗。我对这一点还是新手,正在努力解决问题。我假设您引用的是$search[]=$post_map[$key].='行。mysql\u real\u escape\u字符串($value);没问题。您必须先调用mysql\u connect,然后才能使用mysql\u real\u escape\u字符串,成功连接后,mysql\u connect将返回链接标识符。所以示例代码看起来像
$link=mysql\u connect($host,$user,$password)
然后您可以简单地将您的行改写为:$search[]=$post\u map[$key].='。mysql\u real\u escape\u string($value,$link)
您能给我一个简单的示例吗。我对这一点还是新手,正在努力解决问题。我假设您引用的是$search[]=$post_map[$key].='行。mysql\u real\u escape\u字符串($value);没问题。您必须先调用mysql\u connect,然后才能使用mysql\u real\u escape\u字符串,成功连接后,mysql\u connect将返回链接标识符。所以示例代码看起来像$link=mysql\u connect($host,$user,$password)
然后您可以简单地将行重写为:$search[]=$post\u map[$key].='.mysql\u real\u escape\u string($value,$link)