【问题标题】:PHP script to create tablePHP脚本创建表
【发布时间】:2012-02-22 15:53:12
【问题描述】:

我需要创建 MySQL 表。所以我正在运行这个脚本,但它只是不工作。知道为什么吗?

<?php
$con = mysql_connect("database.dcs.aber.ac.uk","xxx","nnnnnnnnnn");
mysql_select_db("jaz",$con);
$sql = "CREATE TABLE storys
(
id int NOT NULL AUTO_INCREMET,
title TINYTEXT,
type TINYTEXT,
link TEXT,
preview TINYTEXT,
tags TINYTEXT,
text MEDIUMTEXT,
updated TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP,
created DATETIME() DEFAULT NULL,
PRIMARY KEY(id)
)";

mysql_query($sql,$con);

mysql_close($con);

?>

【问题讨论】:

  • 用户是否对相关表有写权限
  • 连接参数是否正确?
  • mysql_query($sql, $con); 行下方添加echo mysql_error(); 行,如果它输出任何内容,请告诉我,此行通常会告诉您发生了什么错误,并且很可能是您的问题的原因
  • 这是错误:您的 SQL 语法有错误。检查与您的 MySQL 服务器版本相对应的手册,以了解在 ') 附近使用正确的语法 ON UPDATE CURRENT_TIMESTAMP, created DATETIME() DEFAULT NULL,
  • 这些行是什么:updated TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP, created DATETIME() DEFAULT NULL, ment 做什么?你想要一个日期字段吗?

标签: php mysql create-table


【解决方案1】:

您的代码绝对没有错误处理,这将向您显示查询失败的原因。

$con = mysql_connect(...) or die(mysql_error());

$res = mysql_query(...) or die(mysql_error());

是几乎每个 mysql 调用都应该进行的最低限度的错误处理。

如果这已经到位,你必须被告知:

id int NOT NULL AUTO_INCREMET,
                            ^---missing 'n', not a valid SQL keyword.

【讨论】:

    【解决方案2】:

    在之前列出的问题中,您在数据类型定义中使用了函数,并且“ON UPDATE”语法错误。

    这是我认为您在 SQL 中寻找的内容:

    CREATE TABLE IF NOT EXISTS  `storys` (
     `id` INT NOT NULL AUTO_INCREMENT ,
     `title` TINYTEXT,
     `type` TINYTEXT,
     `link` TEXT,
     `preview` TINYTEXT,
     `tags` TINYTEXT,
     `text` MEDIUMTEXT,
     `updated` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
     `created` DATETIME DEFAULT NULL ,
    PRIMARY KEY ( id )
    );
    

    【讨论】:

    • 你用的是什么版本的MySQL,能不能再给一次错误信息,这样我们可以确定是一样的吗?
    • 您的 SQL 语法有错误。查看与您的 MySQL 服务器版本相对应的手册,以了解在 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, created DATE 附近使用的正确语法
    • 您能提供您正在运行的“新”SQL 吗?
    • 也许这与它有关:stackoverflow.com/a/4897134/682232
    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 2011-06-11
    • 1970-01-01
    • 2022-12-23
    相关资源
    最近更新 更多