0

我是一名初级程序员,我安装了 XAMPP 是为了学习一点 PHP。我有 SQL 的工作知识。

我一直在关注w3schools的 PHP 教程。我目前遇到的问题是:我在这里使用脚本在其中创建一个数据库和一个表。我使用的几乎是逐字逐句的,除了我用“root”替换了用户并且我已经删除了密码。

通过浏览器运行脚本后,数据库 my_db 出现在 XAMPP 中 mysql 的数据文件中。

但是,没有表格的迹象,当我尝试选择表格时,我得到

表 'my_db.persons' 不存在

到底是怎么回事?我逐字记录的代码有问题,还是有权限的?

奇怪的是创建了数据库但没有创建表......

4

1 回答 1

1

发生的事情是您的“CREATE TABLE”将失败。

养成在每个 mySQL 查询(在您的代码中)之后检查错误的习惯:有时您可以忽略错误,但这种情况很少见。所以程序如下:

Create query: $sql =
Set parameters: $aParams =   (or bind paramters)
Execute query
If errors
    If debug: Show error and query
    If live: Log error and query

我没有给出代码的解决方案,因为您遵循的教程的一个问题是它使用了很快就会贬值的 mysql_() 函数。您应该使用PDO(PHP 数据库对象)mysqli()函数,否则您的代码将无法在几个发布时间内运行。

使用 PDO,您可以将错误处理设置为使用异常,并将每个调用包装在 try {} catch {} 中,这使得捕获和报告错误的习惯变得非常容易。

    $sql = 'CREATE TABLE....';
    $aParams = array(
        ':param_name' => $param_value,
        ':param_name2' => $param_value2
           );

    try {
        $stmnt = $db->prepare($sql);
        $stmnt->execute($aParams);
        $stmnt = null;
    } catch (Exception $e) {
        // Error log here; $e contins line of error and the actual error, you have $sql and $aParams
        LogDBError($e, $sql, $aParams);
    }
于 2012-12-21T03:21:15.837 回答