我正在尝试将值插入 MySQL 数据库。我可能会做类似的事情:
INSERT INTO `records` (`id`, `name`, `town`) VALUES (?, ?, ?)
然后使用准备好的语句来填充相应的值(这将来自用户输入)。
但是,现在假设我想从同一数据库中的另一个 表中提取一个值...完全独立于用户。例如,假设 town
存储在其他地方...
INSERT INTO `records` (`id`, `name`, `town`)
VALUES (?, ?, SELECT `town` FROM `otherTable` WHERE `someColumb`=1)
PHP 准备语句现在只提供 id
和 name
。
我看到一些关于使用 SELECT
和 UNION ALL
的帖子,但我无法正确实现它(这也不起作用):
INSERT into `records`
(`period`, `fullname`, `username`, `inout`, `outWhere`)
"SELECT `value` from `settings` WHERE `name`='CURRENT_PERIOD', ?, ?, ?, ?
我想自动填充第一个值 period
,但最后四个值应该来自准备好的语句。
非常感谢 - 我仍在学习 MySQL 语法。
最佳答案
"INSERT into `records`
(`period`, `fullname`, `username`, `inout`, `outWhere`)
SELECT `value`, ?, ?, ?, ? from `settings` WHERE `name`= ?";
然后用 bind_param 绑定(bind)参数
关于php - MySQL:使用跨表 SELECT 的准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27631544/