表没有在数据库中创建

时间:2013-09-23 13:48:25

标签: php mysql sql database

好的,我正在关注如何使用PHP / MySQL创建一个非常简单的博客系统的youtube指南,因为我想更多地学习这两种语言。我正在我的localhost中创建这个,权限设置正确。

问题是,当我进入localhost / tables.php时,它会显示为白色屏幕,但它不会在数据库中创建相关表格?

这是我正在使用的代码:

mysql.php

<?php
mysql_connect('localhost','username','password'); //where localhost is the host, username is the relevant username and password is the relevant password.
mysql_select_db('database'); //where database is the chosen database in which to drop the tables.
?>

tables.php

<?php
include "mysql.php";
$table = "ENTRIES";
mysql_query ("CREATE TABLE IF NOT EXISTS `$table` (`ID` INT NOT NULL AUTO_INCREMENT , PRIMARY KEY ( `id` ) )");
mysql_query ("ALTER TABLE `$table` ADD `TITLE` TEXT NOT NULL");
mysql_query ("ALTER TABLE `$table` ADD `SUMMARY` TEXT NOT NULL");
mysql_query ("ALTER TABLE `$table` ADD `CONTENT` TEXT NOT NULL");
?>

错误日志中没有任何内容出现,令人沮丧,并没有帮助我诊断问题。

任何帮助将不胜感激!感谢。

2 个答案:

答案 0 :(得分:0)

如果没有错误,请运行此代码以显示您是否已创建表格 ENTRIES

<?php 
include "mysql.php";
$result = mysql_query("SHOW COLUMNS FROM `ENTRIES`");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        print_r($row);
    }
}
?>

注意当您从MySQL开始时,建议您使用PDO代替不推荐使用的mysql _。

这是一个很好的tutorial

修改 以下注释以下代码列出了服务器上的数据库和表(注意使用不推荐使用的mysql_函数)。

确保正确的参数替换为“XXX”。

<?php
$host= "localhost";
$username="XXX";
$password="XXX";
$database="XXX";
$link = mysql_connect($host,$username,$password); //where localhost is the host, username is the relevant username and password is the relevant password.
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
     echo $row->Database . "\n";
     echo "<BR>";
}
echo "<BR>";
$result = mysql_list_tables($database);
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
    echo "Table: ", mysql_tablename($result, $i), "\n";
    echo "<BR>";
}
?>

答案 1 :(得分:0)

  

错误日志中没有出现任何令人沮丧且无法帮助我诊断问题的内容

所以你的第一个问题就是要找出为什么它没有记录任何错误。顺便说一句,注入一些echo / print语句以找出 它失败的地方也是一个好主意。

忘记MySQL的内容并尝试:

<?php
trigger_error("Testing", E_USER_WARNING);
?>

即使(一旦您将错误报告整理出来),您应该记录错误,它可能只包含有限数量的信息。无论何时调用mysql函数,通过mysql_,mysqli或PDO,都应该轮询返回值并处理任何错误 - 即使它只是将值回显到屏幕上。

  

据说我没有选择数据库

您连接的用户帐户可能没有访问数据库的权限。