Php SQL数据库设置问题
我正在尝试为一个简单的购物车应用程序设置一个数据库。我有一个create.php文件,应该可以建立这些表。每次我修复一个语法错误时都会出现新的语法错误,我不知道为什么。这是我的密码:Php SQL数据库设置问题,php,mysql,Php,Mysql,我正在尝试为一个简单的购物车应用程序设置一个数据库。我有一个create.php文件,应该可以建立这些表。每次我修复一个语法错误时都会出现新的语法错误,我不知道为什么。这是我的密码: <?php require_once 'conn.php'; $sql = <<<EOS CREATE TABLE IF NOT EXISTS products ( product_id int(4) NOT NULL auto_increment, price decima
<?php
require_once 'conn.php';
$sql = <<<EOS
CREATE TABLE IF NOT EXISTS products (
product_id int(4) NOT NULL auto_increment,
price decimal(10,2) NOT NULL default '0.00',
description varchar(255) NOT NULL default '',
image_path varchar(255) NOT NULL default '',
name varchar(30) NOT NULL default '',
quantity int(4),
long_description varchar(700) NOT NULL default '',
PRIMARY KEY (product_id)
)
EOS;
$result = mysql_query($sql) or
die(mysql_error());
$sql = <<<EOS
CREATE TABLE IF NOT EXISTS customers (
customer_id int(11) NOT NULL auto_increment,
first_name varchar(30) NOT NULL default '',
last_name varchar(30) NOT NULL default '',
suffix varchar(10),
billing_address varchar(255) NOT NULL default '',
shipping_address varchar(255) NOT NULL default '',
email varchar(255),
phone int(10) NOT NULL default '0000000000',
password varchar(255) NOT NULL default '',
PRIMARY KEY(customer_id)
)
EOS;
$result = mysql_query($sql) or
die(mysql_error());
$sql = <<<EOS
CREATE TABLE IF NOT EXISTS address (
address_id int(20) NOT NULL auto_increment,
address_line_1 varchar(50) NOT NULL default '',
address_line_2 varchar(50),
city varchar(40) NOT NULL default '',
state char(2) NOT NULL default '',
zip_code int(5) NOT NULL default '00000',
PRIMARY KEY(address_id)
)
EOS;
$result = mysql_query($sql) or
die(mysql_error());
$sql = <<<EOS
CREATE TABLE IF NOT EXISTS orders (
order_id int(11) NOT NULL auto_increment,
customer_id int(11) NOT NULL,
PRIMARY KEY(order_id),
FOREIGN KEY(customer_id) REFERENCES customers(customer_id)
)
EOS;
$result = mysql_query($sql) or
die(mysql_error());
$sql = <<<EOS
CREATE TABLE IF NOT EXISTS cart_items (
cart_id int(11) NOT NULL auto_increment,
product_id int(4) NOT NULL default '',
quantity int(5) NOT NULL default '',
PRIMARY KEY(cart_id),
FOREIGN KEY(product_id) REFERENCES products(product_id)
EOS;
$result = mysql_query($sql) or
die(mysql_error());
echo "<html><head><h1>Tables created!!</h1></head></html>";
?>
首先找出哪个查询有问题。注释它们,然后一次运行一个,或者在每个语句之后使用echo
语句,以便快速找到问题查询。您还可以将每个查询复制到MySQL客户端,并单独测试它们并快速缩小范围。您的上一个查询缺少一个右括号。整数列类型不能使用默认值“”
。我假设JSZOBDY对上一个查询是正确的,并且您应该将其分离出来。使用NOTNULL并将default设置为'
有什么意义?另一个改进可能是输出表名以及die方法中的错误。