我正在尝试将值插入MySQL数据库。我可能会这样做:
INSERT INTO `records` (`id`, `name`, `town`) VALUES (?, ?, ?)
然后使用预准备语句填写相应的值(来自用户输入)。
但是,现在,我想说我想从同一数据库中的另一个表中绘制一个值...完全独立于用户。例如,让我们说town
存储在其他地方......
INSERT INTO `records` (`id`, `name`, `town`)
VALUES (?, ?, SELECT `town` FROM `otherTable` WHERE `someColumb`=1)
现在只有id
和name
由PHP准备好的语句提供。
我看到了一些关于使用SELECT
和UNION ALL
的帖子,但我无法正确实施它(这也没有用):
INSERT into `records`
(`period`, `fullname`, `username`, `inout`, `outWhere`)
"SELECT `value` from `settings` WHERE `name`='CURRENT_PERIOD', ?, ?, ?, ?
我希望自动填充第一个值period
,但最后四个应该来自预备语句。
非常感谢 - 我还在学习MySQL语法。
答案 0 :(得分:1)
"INSERT into `records`
(`period`, `fullname`, `username`, `inout`, `outWhere`)
SELECT `value`, ?, ?, ?, ? from `settings` WHERE `name`= ?";
然后用bind_param
绑定参数答案 1 :(得分:1)
以下内容适用于"加入"多个表一起:
SELECT table1.*, table2.*, ?, ?, ?
FROM table1, table2
WHERE table1.col1="something" AND table2.col2="anotherthing";
然后可以将此语句与准备好的INSERT
一起使用。