将数据插入2个表php

时间:2015-06-22 22:52:31

标签: php mysql database paypal

我在这里环顾四周,我看到类似的问题已经得到解答,但我仍然无法弄清楚这一点(一如既往,我是一个总菜鸟,需要体面的解释)

我有一个users.db(userId,mmbrship,mmbrship_date)还有一些值,但这些是我需要更新的。

然后我有payment.db(id,txnid,payment_amount,payment_status,itemid,createdtime)

在我的functions.php中,我有这段代码:

function updatePayments($data){ 
    global $link;
    if(is_array($data)){                
       $sql = mysql_query("INSERT INTO `payments` (txnid, payment_amount, payment_status, itemid, createdtime) VALUES (
               '".$data['txn_id']."' ,
               '".$data['payment_amount']."' ,
               '".$data['payment_status']."' ,
             '".$data['item_number']."' ,
                '".date("Y-m-d H:i:s")."' 
    )", $link);

    return mysql_insert_id($link);
    }
}

我需要将来自payments.db的值'itemid'和'createdtime'插入'mmbrship'中的users.db,'mmbrship_date'

我需要将users.db中的'userId'插入到payments.db中 (将用户连接到其购买)

这样我就可以从users.db获取信息,如果会员已经支付了会员资格,而且现在是payments.db会插入自己的ID。 所以我想如果我能用userId连接这两个表,我可能是朝着正确方向迈出的一步......

?请帮助:)

1 个答案:

答案 0 :(得分:0)

您的数据库设计似乎缺少user实体与payment实体之间的关系

(在ER建模术语中,一个实体(大致)是一个可以唯一识别的人,地点,事物,概念或事件,我们需要存储有关信息并且很重要......)

为了确定实体之间关系的基数,我们会提出一系列问题,例如:

  • user可以与多个payment相关吗?

  • user可以与零payment相关吗?

  • 单个payment可以与多个user相关吗?

根据这些(和类似)问题的答案,我们可以确定userpayment之间的关系是一对一,一对多还是多对 - 很多,以及它是强制的还是可选的。

我怀疑在您的模型中,payment只与一个user相关联。 (也就是说,给定的payment不会应用于多个user。)并且给定的user有可能有零个,一个或多个payment {1}}。

如果是这种情况,那就是一对多的关系,而规范模式是将user实体的主键存储为{{1表,以及定义外键关系。

e.g。

payment

然后,在向 ALTER TABLE payment ADD `userId` INT UNSIGNED COMMENT 'fk ref user' ; ALTER TABLE payment ADD CONSTRAINT FK_payment_user FOREIGN KEY (userId) REFERENCES user (userId) ON UPDATE CASCADE ON DELETE RESTRICT ; 表中插入行之前,您需要确定与此相关的payment,并为user列提供值以建立此付款与其相关的用户之间的关系

如果userIdpayment无关,则在列中存储NULL值。如果您希望要求 user与用户相关,请在列上添加payment约束。

NOT NULLuserId列的数据类型应与paymentuserId列的数据类型相匹配。 (在上面的示例中,我只是猜测了user列的数据类型。)

在关系数据库中,通过在两个表的列中存储 common 值来建立两个不同表中行之间的关系