我在PHP中创建了两个MySQL表,使用下面给出的代码:
$sql = "CREATE TABLE qotwMember
(
MemberId NOT NULL PRIMARY KEY,
Name varchar(255),
Passwork varchar(255),
emailId varchar(255),
)";
$sql = "CREATE TABLE qotwQuestion1111
(
QuestionId NOT NULL AUTO_INCREMENT,
Question varchar(5000),
MemberId varchar(255) FOREIGN KEY fkname REFERENCES qotwMember(MemberId),
PostDate date,
Vote int,
PRIMARY KEY (QuestionId)
)";
mysql_query($sql,$con);
然后我尝试将数据插入这些表中。在qotwMember
表中,输入了数据,但是当我尝试将数据插入qotwQuestion1111
表时,它给出了错误“错误:表'database1.qotwQuestion1111'不存在”< / p>
我无法弄清楚我在这里做错了什么。请帮我解决这个问题。
注意:两个表都是在不同的php中创建的。
此致 Zeeshan
答案 0 :(得分:0)
您确定每次都选择正确的数据库吗?请参阅:mysql_select_db()
答案 1 :(得分:0)
我怀疑你没有给我们真正的SQL,因为这些语句都不会真正起作用 - 你缺少主列的数据类型并且有一些额外的逗号。
如果这是您真正的SQL,请确保在调用or die(mysql_error($con));
之后放置mysql_query
答案 2 :(得分:0)
在创建表时,可能更容易使用MySQL前端,例如MySQL query browser,而不是尝试在PHP中运行CREATE TABLE
语句。我的猜测是你的第二个语句中存在语法错误,因此表没有被创建。前端将显示语法错误。
或者,您可以检查mysql_query
的返回值以查看是否有错误,然后使用mysql_error()
将其读出来。
答案 3 :(得分:0)
我遇到了与MySQL中的外键创建相同的问题(这是你的错误所在)。
创建外键时,外键列和引用列的数据类型和大小必须相同。我注意到你没有给你的主键列任何数据类型或大小。这可能是导致错误的原因。此外,正如其他人所指出的那样,您使用的引擎也将决定您是否可以使用外键。
如果将'MemberID'声明为'MemberID varchar(255)NOT NULL PRIMARY KEY',它应该可以正常工作。我建议总是给你的主键列一个数据类型和可能的大小。我不知道你的表是什么,但对于一个只是一个ID的主键列,我建议把它变成某种类型的INT(只记得改变你的外键列来反映这个变化)。