【问题标题】:Create TABLE in PHP using使用在 PHP 中创建表
【发布时间】:2014-12-08 21:24:52
【问题描述】:

我的数据库中有一些来自捷克字母表的不寻常字母(例如 ěščřžýáíé)的表忽略了我的查询。我认为它可以通过 CHARACTER SET utf8 COLLATE utf8_czech_ci 解决,但看起来我不知道如何使用它。我正在尝试这段代码,但肯定有一些问题:

        mysql_query("CREATE TABLE `".$userreg."` CHARACTER SET utf8 COLLATE utf8_czech_ci(
        id INT NOT NULL AUTO_INCREMENT, 
        PRIMARY KEY(id),
        title VARCHAR(30), 
        rating_estimate INT)")
        or die(mysql_error());

我必须在 PHP 代码中创建表,因为它依赖于另一个变量。浏览器显示“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 'id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), title VARCHAR(30), ' 附近使用的正确语法第 2 行”。

知道如何解决吗?

【问题讨论】:

  • 既然您似乎正在创建一个新的 MySQL 数据库,我建议您使用 MySQLi 或 PDO 来编写新代码(以及旧代码......) mysqli_* 函数库已被弃用。更多信息可以在"Choosing an API" 上的 PHP 手册中找到。

标签: php mysql utf-8 collate


【解决方案1】:
CHARACTER SET utf8 COLLATE utf8_czech_ci

需要在 CREATE 语句的末尾,在结束 ')' 之后

【讨论】:

    【解决方案2】:

    你可以使用mysql_set_charset()

    mysql_set_charset('utf8');//or utf8_czech_ci
    

    或者:

    mysql_query("SET character_set_results=utf8"); 
    

    你也可以ALTER你的餐桌:

    ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
    

    不过建议看Why shouldn't I use mysql_* functions in PHP?

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 2012-07-23
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 2011-09-18
      相关资源
      最近更新 更多