mysql - 插入选择查询

标签 mysql sql

我有 2 个表格文章和用户。

我想在文章表中插入标题、内容和名称。

我将用户 ID 存储在 session 中,有没有一种方法可以使用插入选择查询将标题、内容和名称添加到文章表,同时使用该 ID 从用户表中获取名称。

类似于:

INSERT INTO article (title, content, name) VALUES ($post['title'], $post['content'], name) SELECT name FROM users WHERE id = mySessionId

最佳答案

使用 INSERT INTO..SELECT 语句,

$title = $post['title'];
$content = $post['content'];
$insertStatement = "INSERT INTO article (title, content, name)  
                    SELECT '$title', '$content', name 
                    FROM users 
                    WHERE id = mySessionId";

作为旁注,查询易受 SQL Injection 攻击如果变量的值(s) 来自外部。请查看下面的文章,了解如何预防它。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号。

关于mysql - 插入选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16611358/

相关文章:

javascript - Chart.js折线图改变x轴分离

php - MySQL 的 PDO 的 lastInsertId 竞争条件?

mysql - 使用 MySQL 命令行,如何在 Select 语句中仅显示日期或金额(十进制)列?

mysql 多表 vs 1 表

sql - 使用 LIKE 或类似的完整搜索操作搜索 XML

sql - 'All' 时的情况

Mac OS X (El Capitan) 上 MySQLdb 的 Python ImportError

sql - 在 SQL Server 中显示 COUNT = 0 的行

mysql - 在存储过程中的另一个 SELECT 中使用已返回的 SELECT

mysql - LEFT JOIN 不考虑 ON 子句