Php 分析错误:语法错误,意外“%”,搜索数据库注入证明

Php 分析错误:语法错误,意外“%”,搜索数据库注入证明,php,mysql,pdo,Php,Mysql,Pdo,我需要一个简单的搜索功能来搜索数据库,我在谷歌上找到的例子都是sql注入的 使用此代码时: SELECT userid, fullname, website, birth, image FROM profile WHERE fullname LIKE ? OR website LIKE ?", %{$_POST["searchname"]}%, %{$_POST["searchurl"]}% 我得到一份工作 Parse error: syntax error, unexpected '%' i

我需要一个简单的搜索功能来搜索数据库,我在谷歌上找到的例子都是sql注入的

使用此代码时:

SELECT userid, fullname, website, birth, image FROM profile WHERE fullname LIKE ? OR website LIKE ?", %{$_POST["searchname"]}%, %{$_POST["searchurl"]}%
我得到一份工作

Parse error: syntax error, unexpected '%' in /usr/share/nginx/html/public/search.php on line 15 
虽然我找到了一个示例6,但它使用execute,而在我的代码中,我将其作为函数调用

我的查询功能-

我的搜索功能-

http://codepad.org/pfGZdWW5 (link was not allowed.)
请帮我纠正一下!如果您需要有关代码的更多信息,请询问


谢谢

您应该准备该查询:

$handle= new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = 'SELECT userid, fullname, website, birth, image 
          FROM profile 
          WHERE fullname LIKE ? OR website LIKE ?';

$stmt = $handle->prepare($query);
$stmt->execute(array('%'.$_POST['searchname'].'%', '%'.$_POST['searchurl'].'%'));

在第一个%之前加引号,在最后一个%之后加引号,给出了分析错误:语法错误,意外“”,第15行的/usr/share/nginx/html/public/search.php中需要标识符T_字符串或变量T_variable或数字T_NUM_字符串注意:第21行的/usr/share/nginx/html/public/search.php中需要未定义变量:pdo致命错误:对第21行的/usr/share/nginx/html/public/search.php中的非对象调用成员函数prepare21@SilentFoxpdo是CourseEyes的连接对象,在我的例子中是$handle,正如查询函数中定义的那样,它仍然不起作用。我不能创建一个新的连接,打破对称,我不能这样做吗$rows=querySELECT userid,fullname,website,birth,image FROM profile WHERE fullname LIKE?或者像?,%%+$\u POST[searchname]+%,%%+$\u POST[searchurl]+%这样的网站;你是说?查询从档案中选择用户名、全名、网站、出生、图像,全名在哪里?或者像?,“%”.$u POST['searchname'].%,“%”.$u POST['searchurl'].%这样的网站;我不确定你的功能是如何工作的,但我向你展示了基本功能