我环顾四周,我看到类似的问题已经得到解答,但我仍然无法弄清楚(一如既往,我是一个完全的菜鸟,需要体面的解释)
我有一个 users.db(userId、mmbrship、mmbrship_date)还有一些值,但这些是我需要更新的值。
然后我有一个 payments.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”、“mmbrship_date”中的 users.db
我需要将 users.db 中的“userId”插入到 payments.db (将用户与其购买联系起来)
这样我就可以从 users.db 获取信息,如果成员(member)已经支付了他们的成员(member)费,就像现在一样,payments.db 插入它自己的 ID。 所以我认为如果我可以将这两个表与 userId 连接起来,我可能是朝着正确方向迈出的一步......
?请帮助:)
最佳答案
看起来您的数据库设计缺少 user
实体和 payment
实体之间的关系。
(在 ER 建模术语中,实体(大致)是可以唯一标识的人、地点、事物、概念或事件,我们需要存储有关并且很重要的信息...)
为了确定实体之间关系的基数,我们会提出一系列问题,例如:
一个
用户
可以与多个payment
相关吗?用户
能否与零个支付
关联?单个
支付
是否可以与多个用户
相关?
根据对那些(和类似)问题的回答,我们可以确定user
和payment
之间的关系是否是一对一,一对一许多,或多对多,以及它是强制性的还是可选的。
我怀疑在您的模型中,付款
将只与一个用户
相关。 (也就是说,给定的付款
不会应用于多个用户
。)给定的用户
有可能有零个、一个或多个付款
。
如果是这样,那就是一对多关系,规范模式是将user
实体的主键存储为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
相关,并为 提供一个值userId
列建立此付款与其相关用户之间的关系。
如果payment
与user
无关,则在该列中存储一个NULL 值。如果您希望要求payment
与用户相关,则在该列上添加NOT NULL
约束。
payment
中userId
列的数据类型应与user
中userId
列的数据类型匹配。 (在上面的示例中,我只是猜测了 userId
列的数据类型。)
在关系数据库中,两个不同表中的行之间的关系是通过在两个表的列中存储公共(public)值来建立的。
关于php - 将数据插入2个表php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991165/