Php PDO将信息从一个数据库插入到另一个数据库

Php PDO将信息从一个数据库插入到另一个数据库,php,mysql,pdo,insert,fetch,Php,Mysql,Pdo,Insert,Fetch,我正在尝试将信息从一个数据库表插入到另一个数据库表,但它似乎不起作用 这是我的approve.php文件= <?php if($_POST['approve']) { $mysql = "INSERT INTO approved_videos WHERE id = " . $info['id'] . " SET `title` = '" . $info['title'] . "', `description` = '" . $info['description'] . "', `name`

我正在尝试将信息从一个数据库表插入到另一个数据库表,但它似乎不起作用

这是我的approve.php文件=

<?php
if($_POST['approve']) {
$mysql = "INSERT INTO approved_videos WHERE id = " . $info['id'] . " SET `title` = '" . $info['title'] . "', `description` = '" . $info['description'] . "', `name` = '" . $info['name'] . "', `email` = '" . $info['email'] . "', `country` = '" . $info['country'] . "', `videotmp` = '" . $info['videotmp'] . "', `videotype` = '" . $info['videotype'] . "', `videosize` = " . $info['videosize'] . ", `videopath` = '" . $info['videopath'] . "'";
$dbh->exec($mysql) or die(print_r($dbh->errorInfo(), true));
}
?>
在错误日志中,我得到了以下错误-

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'desc,name,email,country,videotmp,videotype,videosize,videopath) SELECT videos.ti' at line 1' in /bla/bla/bla/process/approve.php:4
有没有办法解决这个问题

更新编辑

好的,我正在阅读mysql网站,四处看看,玩弄我的代码,我将我的查询编辑为:

$mysql = $dbh->prepare("INSERT INTO approved_videos(approved_videos.title,approved_videos.desc,approved_videos.name,approved_videos.email,approved_videos.country,approved_videos.videotmp,approved_videos.videotype,approved_videos.videosize,approved_videos.videopath) SELECT videos.title,videos.desc,videos.name,videos.email,videos.country,videos.videotmp,videos.videotype,videos.videosize,videos.videopath FROM videos WHERE videos.id = :id");
它运行该查询,我没有收到任何错误,但是它实际上没有将信息从videos表插入approved_videos表,所以我是否遗漏了什么

固定的

好的,在玩了一点之后,我没有把它包括进去,而是从approve.php文件中执行了它

'process/approve.php?id='" . $info['id'] . ">
在我的approve.php文件中,我将id更改为-

videos.id = :id
但也补充说-

$mysql->bindParam(":id" ,$_GET['id']);

这解决了我的问题。

您的sql错误,请尝试以下操作:

$mysql = "INSERT INTO approved_videos SELECT * FROM videos where id = ".$info['id'];

没有
WHERE
子句,但有。另外,
$info
是从何处/如何填充的?我刚刚更新了代码,因为我意识到我没有包含该文件,因此如何将表中的一行信息插入到另一行中?insert SELECT支持
where
子句;这是您最可能需要使用的。我说的对吗-
$mysql=“插入已批准的视频(标题、描述、姓名、电子邮件、国家/地区、videotmp、videotype、videosize、videopath)从id=videos.id的视频中选择videos.title、videos.description、videos.name、videos.email、videos.country、videos.videotmp、videos.videotype、videos.videos.size、videos.videopath”
您忘记了
插入已批准的\u视频
-
插入已批准的\u视频
。请稍后再试,看看您得到了什么。不,这似乎也不起作用,但无论如何,谢谢查看它记录的错误日志-
PHP致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[23000]:完整性约束冲突:1062/bla/bla/process/approve中键“PRIMARY”的重复条目“1”。php:4
将查询更改为表的字段,但不带自动递增。一本正经的钥匙。例如:
INSERT INTO table(field1,field2,field3)从表中选择field1,field2,field3,其中id=:id
两个表具有相同的结构?从Approved_视频中删除主键字段,然后重试。我已将其更改为:id,但仍然没有成功,我在编辑部分收到错误消息
$mysql->bindParam(":id" ,$_GET['id']);
$mysql = "INSERT INTO approved_videos SELECT * FROM videos where id = ".$info['id'];