繁体   English   中英

根据用户输入的第一个字符返回PDO查询

[英]Return PDO query based on first character of user input

我正在使用PHP和PDO构建CRUD应用程序。

我有一张桌子,上面放着各种食物,想根据用户输入的第一个字母返回结果。 如“返回所有以'a'开头的食物”。

我有这个查询:

$sql = "SELECT * 
                    FROM food
                    WHERE FoodName LIKE 'a%';
    $userInput = $_POST['userInput'];

显然,这可行并返回所有以a开头的食物。

但是,如何根据用户输入进行查询,而不是为每个字母字母都写上面的内容。

我无法发布整个应用程序,我将其发布在localhost上,但是我认为这不是必需的。 实现此目的的最有效方法是什么? JS,PHP或PDO命令?

根据您所拥有的内容,有一个表单提交用户输入,该表单在$_POST数组中导致一个变量:

$_POST['userInput']

为了在查询中使用它,您只需要用发布的变量替换搜索词即可。 这是在PDO中使用预处理语句来防止潜在的SQL注入攻击的示例:

$sql = $conn->prepare("SELECT * FROM `food` WHERE `FoodName` LIKE :user_input"); // $conn being the database connection
$parameters = array(':user_input' => $_POST['userInput'] . '%'); // note that I have concatenated the wildcard here
$sql->execute($parameters); 
$results = $sql->fetchAll(PDO::FETCH_ASSOC); // fetch everything into an associative array

在这里,我执行了一个参数数组,您还可以使用bindParam()单独绑定每个参数(如果您有多个bindParam()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM