首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表上的PDO查询错误具有json数据类型(MySQL 5.7.8-rc)

问表上的PDO查询错误具有json数据类型(MySQL 5.7.8-rc)
EN

Stack Overflow用户
提问于 2015-10-21 07:52:41
回答 4查看 4.6K关注 0票数 8

我正在mysql 5.7上尝试新的json数据类型。当我使用本机php mysql查询时,它工作得很好,但是当我使用PDO查询数据时,它显示了以下错误:

错误:异常'PDOException‘,消息'SQLSTATEHY000: General Error: 2036’in /some_table_has_json_datatype/pdo.php:12 Stack跟踪:#0 /some_folder/pdo.php(12):PDO->查询(‘select* table_has_json_datatype') #1 {main}

你们知道怎么解决这个问题吗?

谢谢。

使用我的简单测试代码进行更新:

代码语言:javascript
复制
<?php

try{
    $db = new PDO('mysql:host=some.host;dbname=somedb;charset=utf8', 'user', 'pwd');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}catch(PDOException  $e){
    echo "Error1: ".$e;
}

try{
    $query = $db->query("select * from table_with_json_type");

}catch(PDOException $e){
    echo "Error2: ".$e;
}
?>
EN

回答 4

Stack Overflow用户

发布于 2015-12-15 17:27:12

这是向PHP #70384报告的问题

开发人员andrey@php.net刚刚发布了:

此错误的修复已提交。 源的快照每三个小时打包一次;此更改将在下一次快照中进行。您可以在http://snaps.php.net/获取快照。 适用于Windows: http://windows.php.net/snapshots/感谢您的报告,并帮助我们使PHP更好。 修正了PHP-5.6.19,PHP-7.0和主版(PHP-7.1) 谢谢你的报告

因此,PHP数据类型将在PHP中得到支持,对于其他版本,上面有一个解决方案。

这个解决方法使用强制转换功能将JSON字段修改为CHAR,从PHP的角度来看,这是很好的:例如:

代码语言:javascript
复制
select *, CAST(json_col as CHAR) as json_col from table_with_json_type

在任何情况下都对我起作用。

要完全兼容,必须使用PHP-5.6.19+

票数 14
EN

Stack Overflow用户

发布于 2016-04-26 17:45:11

我在PHP5.5中也有同样的问题--决定更新到PHP5.6,但问题仍然存在。转换为CHAR是有帮助的,但这不是一个好的解决方案。

我的PHP配置使用libmysqlclient,当我将它更改为mysqlnd (MySQL本机驱动程序)时,它解决了这个问题。

所以我建议你也这么做。

您可以在这里阅读有关PHP MySQL驱动程序的内容:http://php.net/manual/en/mysqlinfo.library.choosing.php

我使用apt-get在Ubuntu服务器上安装了mysqlnd驱动程序:

apt-获取安装php5 5-mysqlnd

票数 2
EN

Stack Overflow用户

发布于 2017-10-20 15:33:47

作为一个小增编。将列转换为这样的字符会产生返回值的效果,并在其周围加上双引号。你可以用trim处理掉它们:

代码语言:javascript
复制
select *, TRIM(BOTH '"' FROM CAST(json_col as CHAR)) as json_col from table_with_json_type
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33253778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档