首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将带引号的参数传递给预准备语句PDO

问将带引号的参数传递给预准备语句PDO
EN

Stack Overflow用户
提问于 2020-05-27 05:54:37
回答 1查看 30关注 0票数 0

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

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

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

代码语言:javascript
复制
SELECT bookname FROM libri WHERE bookname LIKE "test.pdf";
DELETE FROM libri WHERE bookname LIKE "test.pdf";

然而,我似乎无法用准备好的语句重现它:

代码语言:javascript
复制
$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']."'";中设置引号,并使用上面的准备好的语句,但仍然不起作用。

我是不是漏掉了什么,或者弄错了什么?也许我必须使用另一个查询?

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 06:05:45

您所做的事务的"select“部分是不必要的。因为你的意思是如果它存在就把它删除。您将尝试在下一节中将其删除。如果你真的直接运行第二部分,它将删除它,如果它已经存在。我还建议你在爪子区域尝试一下。

代码语言:javascript
复制
$sql = " DELETE FROM libri WHERE bookname LIKE 'test.pdf'";
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62032048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档