【问题标题】:Cannot create a table in PHP无法在 PHP 中创建表
【发布时间】:2018-08-14 07:11:32
【问题描述】:

我遇到了一个问题。我想通过 PHP 在我的数据库中创建一个表,但它不能正常工作。即使我将用于创建数据库的文本复制到 PHPMYADMIN 中,它也可以在那里完美地工作。谁能发现任何错误?我已经检查了我的连接参数。

    if(empty($errors)) {

    $namess = mysqli_real_escape_string($conn, $_POST['topicname']);

    mysqli_select_db($conn,"d197243_games");

    $sql = "CREATE TABLE {$namess} (id INT UNSIGNED AUTO_INCREMENT, topicname VARCHAR(255) NOT NULL, topicdescription VARCHAR(255), topictext TEXT ,primary key (id));";

    $result = mysqli_query($conn, $sql);
    if(!$result) {
        $errors[] = 'Unknown error while creating a post.';
    }

}

【问题讨论】:

  • 是否抛出错误?
  • 不幸的是,没有抛出任何特定的错误。只是我的调试,存储在 $errors[] 中。
  • 请在查询后使用var_dump(mysqli_error($conn)); 并查看其内容。
  • 通过 if (!mysqli_query($conn,$sql) { echo ("错误描述:" .mysqli_error($conn)); } 查找错误
  • 根据我们掌握的信息,这有点难,尝试 dd 或 var_dump。您也可以尝试使用 try/catch 关闭 mysqli 函数以查看异常

标签: php database mysqli connection


【解决方案1】:

在您的查询中,您是否使用过

{$namess}

如果是,则删除那些花括号

而且很简单$namess

如下

$sql = "CREATE TABLE $namess (id INT UNSIGNED AUTO_INCREMENT, topicname VARCHAR(255) NOT NULL, topicdescription VARCHAR(255), topictext TEXT ,primary key (id));";

希望你已经在 $namess 变量中定义了你的表名

【讨论】:

  • 他使用了 $namess 而不是 $name,他也使用了字符串文字。它应该可以在完整的括号内正常工作
  • 我认为这不是我遇到的问题。
  • 还发现一件事,我不能使用空格,因为它写了另一个错误错误描述:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在“654654545465465454654 5454 54654 645”附近使用正确的语法(第 1 行的 id INT UNSIGNED AUTO_INCREMENT, topicnam')
【解决方案2】:

好的,我自己解决了,感谢那个“显示错误”命令。它显示了我的问题。我没有足够的权限来访问数据库..我不得不使用不同的登录凭据..无论如何,感谢您的帮助和回答。欣赏它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多