将引用的参数传递给预准备语句 PDO



我检查了其他问题,PHP和PDO文档以及许多其他示例,但我觉得卡住了,可能是因为我刚刚开始使用PHP和MySQL。

我尝试首先检查是否存在带有SELECT语句的行,然后检查是否存在DELETE行。

但是,查询没有通过,我在 Ubuntu 8 上使用 MySQL 18,并且查询仅适用于WHERE子句后面的单引号:

SELECT bookname FROM libri WHERE bookname LIKE "test.pdf";
DELETE FROM libri WHERE bookname LIKE "test.pdf";

但是,似乎我无法使用准备好的语句重现它:

$sql = "SELECT bookname FROM libri WHERE bookname LIKE :deleteTerm;";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':deleteTerm', $deleteKey); 
$stmt->execute();

$deleteKey设置为$deleteKey = $_POST['delete'];,并尝试附加单引号,$stmt->bindValue(':deleteTerm', "'".$deleteKey."'");它不起作用。 还尝试将引号直接设置为变量名:$deleteKey = "'".$_POST['delete']."'";并使用上面的预准备语句,但仍然不起作用。

我错过了什么,还是弄错了什么?也许我必须使用另一个查询?

"选择"您已完成的事务部分是不必要的。 因为你的意思是删除它,如果它存在。 您正在尝试在下一节中删除它。 如果您实际上直接运行第二部分,如果它已经存在,它将删除它。我还建议您在爪子区域尝试一下。

$sql = " DELETE FROM libri WHERE bookname LIKE 'test.pdf'";

最新更新