数据库表不是使用PHP创建的

时间:2015-03-05 15:13:19

标签: php mysql

当我尝试使用PHP创建表时,它没有被创建。但是当我尝试在MySQL中执行相同的代码时,它运行得很好。

这是我的代码。

$sql = "CREATE TABLE docs_1 (  id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,  date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  leadid text NOT NULL,  filename text NOT NULL,  title text NOT NULL)";
mysql_query($sql);

2 个答案:

答案 0 :(得分:1)

您的查询本身没有任何问题。

  • 原因很可能是您正在使用的可能被弃用的MySQL库。使用error reporting会告诉您是否。

  • 另一个可能的原因可能是您未成功连接到数据库。该信息未包含在您的原始帖子中。

使用已成功测试的mysqli_方法:

<?php 

error_reporting(E_ALL);
ini_set('display_errors', 1);


$DB_HOST = 'xxx'; // Replace
$DB_USER = 'xxx'; // with
$DB_PASS = 'xxx'; // your
$DB_NAME = 'xxx'; // own


$db = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($db->connect_errno > 0) {
  die('Connection failed [' . $db->connect_error . ']');
}

$sql = "CREATE TABLE docs_1
(id int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,  
date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  
leadid text NOT NULL,  
filename text NOT NULL,  
title text NOT NULL)";


$result = mysqli_query($db,$sql);

    if(!$result) {
        die('There was an error running the query [' . $db->error . ']');
    }

    else {

        echo "Successful query.";

    }

?>

error reporting添加到文件的顶部,这有助于查找错误。

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);

// rest of your code

旁注:错误报告应仅在暂存时完成,而不是生产。

答案 1 :(得分:0)

这是因为date是MySQL中的预定义词,你不能将它用作列名。

修改 Sry,Fred -ii-有权利,它不是预定义的单词,所以我的答案是不相关的