我检查了其他问题,PHP和PDO文档和许多其他示例,但我感觉卡住了,可能是因为我刚刚开始使用PHP和MySQL。
我尝试首先使用SELECT语句检查行是否存在,然后使用DELETE语句检查行是否存在。
但是,查询没有通过,我在Ubuntu18上使用的是MySQL 8,并且查询只适用于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']."'";中设置引号,并使用上面的准备好的语句,但仍然不起作用。
我是不是漏掉了什么,或者弄错了什么?也许我必须使用另一个查询?
发布于 2020-05-27 06:05:45
您所做的事务的"select“部分是不必要的。因为你的意思是如果它存在就把它删除。您将尝试在下一节中将其删除。如果你真的直接运行第二部分,它将删除它,如果它已经存在。我还建议你在爪子区域尝试一下。
$sql = " DELETE FROM libri WHERE bookname LIKE 'test.pdf'";https://stackoverflow.com/questions/62032048
复制相似问题