我有以下代码:
<?php
$con = mysql_connect("localhost","will","blahblahblah");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("bombom", $con);
$sql="INSERT INTO links (link, notes)
VALUES
('$_POST[link]','$_POST[notes]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
?>
这会在我的数据库中向表中添加一条新记录。如果每个用户都有自己的表或只有自己的记录,我会用这个数据库处理多个用户吗?
我正在考虑他们自己的记录,但我如何对其进行编码,以便为每个链接和从表单提交的注释创建两个新列并添加到他们的记录中?
答案 0 :(得分:3)
您对数据库表的运行方式存在根本性的误解。您不为每个用户创建列或表。您为所有用户创建一个表,并有一个方法来唯一标识该行所属的用户。
table users:
id int
name varchar(32)
password varchar(3)
table links:
user_id int // foreign key pointing to users.id
link text,
notes text
然后,要查找任何一个用户的链接,您需要
SELECT link, notes FROM links WHERE useri_id=XXX;
答案 1 :(得分:0)
你会给你的用户表一个ID,比如user_id
,然后你会给你的链接表一个ID,比如说link_id
。然后,您将创建一个联合表,其结构将是:union_id
,user_id
,link_id
。然后,在创建链接时,创建条目,保留mysql_insert_id(),获取当前用户ID,并创建联合。然后,您可以获取用户ID并通过union表查找所有注释。绝对不要为每个用户制作一张桌子!