在XAMPP中使用PHP:可以创建db但不能创建表

时间:2012-12-21 02:38:29

标签: php xampp

我是初学程序员,我已经安装了XAMPP,目的是学习一些PHP。我有SQL的工作知识。

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

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

然而,没有表格的迹象,当我尝试选择表格时,我得到了

  

表'my_db.persons'不存在

发生了什么事?我逐字记录的代码是否有问题,或者是否具有权限?

创建数据库但不是表格,这很奇怪......

1 个答案:

答案 0 :(得分: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 Database Objects)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);
    }