当我尝试使用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);
答案 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-有权利,它不是预定义的单词,所以我的答案是不相关的