我正在尝试从php创建表到我的数据库。我有点试图建立一个社交网站,无论如何,我编写代码并正在工作,但新表不会在数据库中创建,我不知道代码似乎有什么问题。非常感谢帮助,谢谢!
<?php
$host = "host";
$user = "user";
$pswd = "password";
$dbnm = "db";
$conn = @mysqli_connect($host, $user, $pswd, $dbnm);
if (!$conn)
die ("<p>Couldn't connect to the server!<p>");
$selectData = @mysqli_select_db ($conn, $dbnm);
if(!$selectData)
{
die ("Database Not Selected");
}
$sql = "CREATE TABLE IF NOT EXIST 'friends'
(
'friend_id' INT NOT NULL auto_increment,
'friend_email' VAR CHAR(20) NOT NULL,
'password' VAR CHAR(20) NOT NULL,
'profile_name' VAR CHAR(30) NOT NULL,
'date_started' DATE NOT NULL,
'num_of_friends' INT unsigned,
PRIMARY KEY ('friend_id')
)";
$query_result = @mysqli_query($conn, $sql);
mysqli_close($conn);
?>
答案 0 :(得分:0)
首先,在调试脚本时,请在函数前删除“@”。他们会抑制警告,否则会迅速引导您发现错误。
您的create table语句有很多语法错误。尝试更正的 -
CREATE TABLE IF NOT EXISTS `friends`
(
`friend_id` INT NOT NULL auto_increment,
`friend_email` VARCHAR(20) NOT NULL,
`password` VARCHAR(20) NOT NULL,
`profile_name` VARCHAR(30) NOT NULL,
`date_started` DATE NOT NULL,
`num_of_friends` INT unsigned,
PRIMARY KEY (`friend_id`)
)
答案 1 :(得分:0)
您还需要在运行脚本时检查错误,因此要么关闭抑制(删除@符号),要么在运行后检查错误。
实际上存在多个错误:
EXIST
而不是EXISTS
您有VAR CHAR
两个字,而不是正确的VARCHAR
(一个字)
CREATE TABLE IF NOT EXISTS `friends`
(
`friend_id` INT NOT NULL auto_increment,
`friend_email` VARCHAR(20) NOT NULL,
`password` VARCHAR(20) NOT NULL,
`profile_name` VARCHAR(30) NOT NULL,
`date_started` DATE NOT NULL,
`num_of_friends` INT unsigned,
PRIMARY KEY (`friend_id`)
)
答案 2 :(得分:0)
您在CREATE TABLE中有错误。你应该写CREATE TABLE tablename IF NOT EXISTS
(EXISTS应该以S结尾)。我还建议您不要在每次查询之后抑制错误并打印错误,如下所示:
if(!mysqli_query($conn, $sql) { die("The query ".$sql." failed: ".mysqli_eror }