PHP PDO喜欢(搜索)

时间:2017-05-24 19:23:23

标签: php mysql search pdo

我使用此代码使用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"作为价值。阅读调试输出似乎存在问题,因为价值不会在任何地方显示。

1 个答案:

答案 0 :(得分:0)

PDO会提供正确转义数据所需的任何报价。占位符应该按原样放置:

$query = $conn->prepare('SELECT * FROM user WHERE user_email LIKE :search');

使用字符串调用bindParam将提示PDO使用引号并相应地转义该值。