那么,我有这个查询:
FROM test.cliente, test.contratto
WHERE test.contratto.Codice_Cliente = test.cliente.Codice_Cliente
AND test.cliente.Denominazione = :name;
但是我正在尝试这样做:
FROM test.cliente, test.contratto
WHERE test.contratto.Codice_Cliente = test.cliente.Codice_Cliente<
AND test.cliente.Denominazione LIKE "%:name%";
我想使用这个查询的原因是因为用户在html表单中输入了一个名字,但我不希望他输入的数据与我在数据库中输入的数据相同,因为他输入的数据不可能与数据库中写入的数据相同。
代码如下:
$name = $_POST['Denominazione'];
$statement = $connection->prepare($sql);
$statement->bindParam(':name', $name, PDO::PARAM_STR);
$statement->execute();
$result = $statement->fetchAll();
我也试着输入
$name = '%'.$_POST['Codice_Cliente'].'%';
但是它什么也没找到。
PDO准备语句不允许在SQL语句中使用%。
You have to use "FROM test.cliente, test.contratto
WHERE test.contratto.Codice_Cliente = test.cliente.Codice_Cliente
AND test.cliente.Denominazione LIKE :name";
并加上"%name%"在execute.
请参见:
如何使用LIKE语句创建PDO参数化查询?
PHP -使用PDO与IN子句数组