【问题标题】:How to insert foreign key into MySQL database using PHP?如何使用 PHP 将外键插入 MySQL 数据库?
【发布时间】:2015-02-24 21:48:18
【问题描述】:

我有两张桌子:usersorders。我想在订单表中插入一个外键(来自用户的unique_id),以便每个订单都由不同的用户表示。

PHP 语句:

$result = mysql_query("INSERT INTO 
              orders(id, unique_id, product, volume, type, crates, ordered_at)
              SELECT  VALUES
              ('$id', '$unique_id','$product', '$volume', '$type', '$crates', NOW())");

unique_id 是外键。

【问题讨论】:

  • 我认为您正在尝试执行INSERT INTO ... SELECT - 我猜您的语法错误。我认为是INSERT INTO my_table (my_col) SELECT my_col FROM my_other_table。尝试将您的查询复制到您的数据库系统中并直接运行它,看看是否出现错误?
  • 或者你只是想插入一个 FK 值?如果是这样,常规的INSERT 需要您删除SELECT - 这只会混淆数据库引擎。
  • 当我输入这个 stmt 时,我得到一个错误 INSERT INTO orders(id, unique_id, product, volume, type, crates, amount, ordered_at) VALUES('$id', '$unique_id', SELECT FROM unique_id from users, '$product', '$volume', '$type', '$crates', '$amount', NOW())
  • 您可能会提到您遇到了什么错误?我认为这可能很重要。

标签: php android mysql foreign-keys


【解决方案1】:

在此 PHP 问题之前,您必须首先使用 mysql 正确创建表。如下所示 //我只是输入必填字段。

create table users(unique_id int primary key,name varchar(50));

create table orders(id int primary key, unique_id int,foreign key(unique_id) references users(unique_id));

因此,如果您想在用户中插入不是 unique_id 的数据,它将不会接受订单。 如果你做了这么多,那么根据我的说法,你必须编辑问题,因为它不够清楚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 2012-04-20
    相关资源
    最近更新 更多