首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP和Mysql使用一个查询将数据插入两个表中

问使用PHP和Mysql使用一个查询将数据插入两个表中
EN

Stack Overflow用户
提问于 2014-03-13 16:08:00
回答 4查看 53.7K关注 0票数 5

我有两个表,我试图将数据插入到使用PHP中

代码语言:javascript
复制
Table: WINE
-----------------------------------------------------------------
|  wine_id  |  wine_type  | country  |  indicator  |  color  |
-----------------------------------------------------------------

wine_id是自动递增的,这是我的另一个表

代码语言:javascript
复制
Table: stock
 --------------------------------------
 |  stock_id  |  wine_id  | quantity  |
 --------------------------------------

对于股票表,我有自动递增的股票ID,wine_id是外键,所以我只需要插入quantity。

我有这样的语法:

代码语言:javascript
复制
$sql = mysql_query("INSERT INTO TABLE1(field1, field2, field3) VALUES('value1',value2,value3) INSERT INTO STOCK(field) VALUES ('value1')");

如果有其他方法,请提出建议,我想举几个例子。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-13 16:10:08

您需要用分号分隔两个INSERT语句。

这个(mysql_*)扩展在PHP 5.5.0中不再受欢迎,并将在将来被删除。相反,应该使用MySQLi或PDO_MySQL扩展。切换到PreparedStatements会更好地抵御SQL注入攻击!

票数 7
EN

Stack Overflow用户

发布于 2014-03-13 16:11:49

您可以运行多个插入,但是不能从一个INSERT语句插入到两个表中。还要确保为外键获取最后插入的带有LAST_INSERT_ID()的ID,并在两个插入之间使用分号;。

票数 2
EN

Stack Overflow用户

发布于 2014-03-13 16:28:36

从外表上看,你想做的是:

  1. 将数据插入wine表
  2. 从wine表中获取ID
  3. 将ID插入到stock表中

查询不支持多个查询。因此,我的建议是:

代码语言:javascript
复制
$result = mysql_query("INSERT INTO `wine` (`wine_type`, `country`, `indicator`, `colour`) VALUES ('Merlot', 'Australia', 'Dry', 'Red')");
$result = mysql_query("INSERT INTO `stock` (`wine_id`, `quantity`) VALUES ('".mysql_insert_id()."', '0');");

当然,修改要考虑到你自己的变量和卫生设施的价值。如前所述,mysql_函数已不再受欢迎,您最好在不久的将来将数据库迁移到PDO结构中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22384391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档