【问题标题】:making a query with é as column name in php drupal 7在php drupal 7中使用é作为列名进行查询
【发布时间】:2011-08-28 18:28:22
【问题描述】:

我得到了这张表,其列名 Catégorie 我无法重命名(长话短说),而 é 让我很困扰。

我似乎无法查询该列。

我得到以下代码

$query_brands = "SELECT distinct catégorie as merk FROM GSProduct";

    $resultBrands = $phpbb->query($query_brands);
    $brandArr = array();
    foreach($resultBrands as $brand){
        $brandArr[$brand->merk] = $brand->merk;
    }

在 mysql 中查询工作正常,但在 php 中出现异常:

PDOException:在 meisjesschoenen_filter_form() 中(/home/mediaspe/domains/mediaspex.be/public_html/juniorsteps/sites/all/modules/meisjesschoenen/meisjesschoenen.module 的第 198 行)

我尝试将它放在 ' ' 之间,但我只得到 1 个空结果,而不是我应该得到的 7 个结果

非常感谢您的帮助!

更新:

我在 settings.php 中找到了以下代码行,然后添加了排序规则广告:

array (
    'juniorsteps_gem' =>
    array (
      'database' => '*****',
      'username' => '*****',
      'password' => '*****?',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
'collation' => 'utf8_general_ci',
    ),

我还在 mysql 中发现我的数据库/表的排序规则也是 utf8_general_ci 所以应该没问题。

UPDATE2(无法自行回答)

问题出在我的文件上。 我使用 notepad++ 将我的文件从 ANSI 转换为 UTF 8,现在它可以工作了。

感谢大家朝着正确的方向前进!!

【问题讨论】:

  • 数据库连接 (PDO) 的编码是什么,您将写入该 SQL 语句的文件保存在哪种编码中?
  • 我使用了一个drupal类来连接数据库,我正在尝试找出文档中的编码,但还没有运气。此行建立连接: $phpbb = Database::getConnection($target='juniorsteps_gem',$key='juniorsteps_gem');如何找到文件的编码类型?它只是一个 .php 文件,我用 notepad++ 编辑它
  • 我尝试使用:$phpbb = Database::getConnection($target='juniorsteps_gem',$key='juniorsteps_gem'); mysql_set_charset('utf8', $phpbb);但它没有用。
  • 很高兴你找到了罪魁祸首。我已添加文件编码作为答案,请随时接受;)

标签: php mysql encoding pdo drupal-7


【解决方案1】:

确保您编写 SQL 语句的文件已正确编码,例如UTF-8。这是您正在使用的编辑器中的设置。

否则,您将错误的字符发送到数据库,因为您会得到一个无效的 PDO 异常。

【讨论】:

    【解决方案2】:

    你应该使用 `quote 而不是 '。

    尝试使用:

    "SELECT distinct `catégorie` as merk FROM GSProduct";
    

    【讨论】:

    • 它仍然给出相同的 PDOException。 :s
    • @Stephan-Celis 你发送'SET NAMES UTF8;'创建连接后?
    • 我尝试使用以下行然后 "$phpbb->query('SET NAMES UTF8'); $resultBrands = $phpbb->query($query_brands);"但它没有工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多