我使用这个代码使用PDO来生成搜索查询:PHP PDO喜欢(搜索)
$test = $_POST["user_search"];
//search for user in database
$query = $conn->prepare('SELECT * FROM user WHERE user_email LIKE ' . "':search'");
$keyword = "%".$test."%";
$query->bindParam(':search', $keyword, PDO::PARAM_STR);
$query->execute();
$results = $query->fetchAll();
print_r($results);
$query->debugDumpParams()
调试输出是:
SQL: [50] SELECT * FROM user WHERE user_email LIKE ':search' Params: 1 Key: Name: [7] :search paramno=-1 name=[7] ":search" is_param=1 param_type=2
任何想法,出了问题?例如$ _POST [“user_search”]为“507”。读取调试输出似乎有一个问题,因为值没有显示在任何地方。
尝试删除单引号:搜索。就我所知,PDO不需要单引号。 –
尝试'SELECT * FROM user WHERE user_email LIKE:search'。不知道你为什么试图一起查询这样的查询。 PDO将用您传递给它的值替换':search'作为值。 –
关于针对过去问题提供的解决方案,您的接受记录颇具疑问。 –