【发布时间】:2021-05-08 23:25:53
【问题描述】:
所以,我有这个查询:
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 prepared statement with LIKE)。如果它没有找到任何东西,那么它不匹配任何行。你确定你的查询应该匹配吗?
-
$_POST['Denominazione'] != $_POST['Codice_Cliente'] -
您的查询中缺少 SELECT?还是您只发布了查询的一部分。
-
我的意思是没有选择吗?在您的查询中?
-
我不知道为什么,但是 [...] 丢失了,这些只是我查询的一部分