php – 使用mysql PDO获取字符集

有没有办法用PDO检索当前字符集?
我以前用MysqLi做了一点测试来检查是否通过检索强制字符集来设置它:

$MysqLi->get_charset(); 

这不适用于$conn = new PDO();

任何帮助表示赞赏.我对PDO很新,并试图从MysqLi跳过来.

附:我知道如何设置字符集,只想测试如何检索它.

感谢HD回答问题我将他的方法设为静态,也许它对某人有帮助(我在5.4表示法之前使用了一些):

 public static function getCharset(PDO $objPdo) {      
  $objCharset = $objPdo->query("SELECT COLLATION('foo')");
  $charset = $objCharset->fetch(PDO::FETCH_NUM);
  return $charset[0];
 }
最佳答案
如果我们运行以下MySQL查询;

MysqL> SELECT COLLATION('foo');
+-----------------------+
| COLLATION('foo')      |
+-----------------------+
| utf8_general_ci       |
+-----------------------+
1 row in set

因此,我们可以使用以下内容获取字符集

$objCharset = $objPdo->query("SELECT COLLATION('foo')");
echo $objCharset->fetch(PDO::FETCH_NUM)[0]; //Output: utf8_general_ci

> PDO Query
> PDO Fetch
> Cubrid thread

然后,您可以更进一步,并使用以下(使用对象注入).

PHP 

class foo {
   public function get_charset($objPdo) {
      $objCharset = $objPdo->query("SELECT COLLATION('foo')");
      return $objCharset->fetch(PDO::FETCH_NUM)[0];
   }
}

$objFoo = new foo();
$objPDO = new PDO(...);
echo $objFoo->get_charset($objPDO);

相关文章

目录MySQL卸载环境查看是否已安装MySQL卸载mysql服务查看是否...
目录数据类型数据类型分类数值类型以TINYINT认识整型族有符号...
目录表的约束空属性非空约束(NOT NULL Constraint)默认值定...
目录函数时间日期函数:字符串函数数学函数其他函数 函数 时间...
目录使用C语言连接库的安装C APImysql_initmysql_real_conne...
目录用户用户管理查询所有用户查看当前用户查看当前连接数创...