Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL数据库设置问题_Php_Mysql - Fatal编程技术网

Php SQL数据库设置问题

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

我正在尝试为一个简单的购物车应用程序设置一个数据库。我有一个create.php文件,应该可以建立这些表。每次我修复一个语法错误时都会出现新的语法错误,我不知道为什么。这是我的密码:

<?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方法中的错误。