我知道这可能会被问很多次,我就是找不到合适的关键字来搜索我的问题,虽然我在mysqli上找到了几种方法。尽管我想知道是否有人能帮我在pdo上做这个。
<?php
$dsn = 'mysql:host=localhost;dbname=dbsample';
$username = 'root';
$password = '';
$options = [];
try {
$connection = new PDO($dsn, $username, $password, $options);
}
catch(PDOException $e) {
$id = $_GET['id'];
$sql = 'INSERT INTO table2 SELECT * FROM table1 WHERE id=:id';
$sql. = 'DELETE FROM table1 WHERE id=:id';
$statement = $connection->prepare($sql);
if ($statement->execute([':id' => $id])) {
header("Location:.");
}
更新:这是我得到的错误
Parse error: syntax error, unexpected '='
我试过把 $sql. =
但最后只会出现另一个错误。
也尝试过移除 .
,和结尾处的相同错误 Parse error: syntax error, unexpected end of file in
2条答案
按热度按时间qeeaahzv1#
pdo不允许在一个调用中执行两个查询。因此需要准备两个不同的查询,然后分别执行每个查询。
您应该使用事务来确保数据库在两个查询之间是一致的。
hrysbysz2#
每个查询的第一个结尾是
;
pdo允许多个查询,但必须正确声明和替换每个查询。。如果再次出现错误,则可能是两个表的模式不匹配(或insert select不匹配),因此请尝试使用explict columns声明