0

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

问题是,当我进入 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.
?>

表格.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");
?>

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

任何帮助将非常感激!谢谢。

4

2 回答 2

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_。

这是一个很好的教程

编辑 以下注释以下代码列出了服务器上的数据库和表(注意使用已弃用的 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>";
}
?>
于 2013-09-23T16:48:34.917 回答
0

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

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

忘记 MySQL 的东西并尝试:

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

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

表示我没有选择数据库

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

于 2013-09-23T21:11:16.170 回答