SQLSTATE[HY000]: General error: 1366 Incorrect string value

发布于 2022-08-28 12:09:57 字数 528 浏览 15 评论 0

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE4\xB8\x8A\xE5\xAE\x98...' for column 'content' at row 1

mysqld version: 5.6
字符设置成utf-8

后来,根据此帖子:http://drupal.stackexchange.com/questions/88327/pdoexception-sqlstatehy000-general-error-1366-incorrect-string-value-wh
怀疑是mysql 中utf-8 支持的字符集有限,所以改成了 utf8mb4,但是并没有解决问题。

求助各位大侠。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二智少女猫性小仙女 2022-09-04 12:09:57

因为是用的PDO,而且SQL语句比较长。就没有把SQL语句给贴出来。

原PHP语句是:BookArticle::create(array('title' => $title, 'content' => $article_content, 'book_id' => $book->id, 'spider_url' => $url)); 我用的是laravel 框架。

执行的时候报错:
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE4\xB8\x8A\xE5\xAE\x98...' for column 'content' at row 1

我想办法clean utf8 code,依然没办法插入。

后来只想打印出SQL,在phpmyadmin里执行一下.

 $sql = "insert into book_articles set title='$title',content='$article_content',book_id=$book_id";

phpmyadmin里的出错信息是 data too long for text ...

把text换成longtext 问题解决。

问题解决的有点慢,原因有两个
1,PDO给里给出的出错信息不够准确。
2,有几篇文章采集时却实有编码问题,这个问题过份的吸引了注意力。

┈┾☆殇 2022-09-04 12:09:57

贴sql(字数补丁)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文