php - MySQL:使用跨表 SELECT 的准备语句

标签 php mysql prepared-statement sql-insert

我正在尝试将值插入 MySQL 数据库。我可能会做类似的事情:

INSERT INTO `records` (`id`, `name`, `town`) VALUES (?, ?, ?)

然后使用准备好的语句来填充相应的值(这将来自用户输入)。

但是,现在假设我想从同一数据库中的另一个 表中提取一个值...完全独立于用户。例如,假设 town 存储在其他地方...

INSERT INTO `records` (`id`, `name`, `town`)
VALUES (?, ?, SELECT `town` FROM `otherTable` WHERE `someColumb`=1)

PHP 准备语句现在只提供 idname

我看到一些关于使用 SELECTUNION 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/

相关文章:

php - 原始 MySQL 中 Laravel Eloquent 的 ownTo 等价于什么

php - mysql,php更改按钮的值和名称

PHP脚本添加新记录,但字段都是空白

c++ - 使用准备好的语句批量插入到Postgresql

mysql - 有人可以告诉我这个查询有什么问题吗?

php - 空白/空搜索表单字段

php - 如何根据 MySQL 的总点击次数排序链接显示?

mysql - 如何在mysql中通过自定义属性进行排序

php - 使用PHP在mysql中拉取数据显示搜索表单结果

php - 准备好的语句 fetch_assoc php mysqli