Cakephp 2.3.5我有以下记录留在我的数据库中
$record => array(
(int) 0 => '14052V',
(int) 1 => 'Matthew',
(int) 2 => 'O’Gorman',
(int) 3 => '1st Class',
(int) 4 => ''
),
我通过调用$this->save($record, array('validate' => false));
根据cakephp成功保存,并返回记录但缺少id。但是没有任何内容保留在数据库中,也没有记录。
如果我将记录修改为以下内容:
$record => array(
(int) 0 => '14052V',
(int) 1 => 'Matthew',
(int) 2 => 'OGorman',
(int) 3 => '1st Class',
(int) 4 => ''
),
然后它保存没有问题并返回数组中的id。我在'encoding' => 'utf8'
文件中配置了database.php
,但仍然无法保存。
造成这种情况的原因是什么?
生成的MYSQL字符串如下所示,如果您手动运行它
INSERT INTO `wsp_artworkcrm`.`artworks` (`barcode`, `artworkgroup_id`, `first_name`, `last_name`, `class`, `teacher`, `modified`, `created`, `user_created`, `user_modified`) VALUES ('*14052V-411*', 866, 'Matthew', 'O’Gorman', '1st Class', '', '2016-07-14 16:26:45', '2016-07-14 16:26:45', 2, 2)
答案 0 :(得分:0)
正如@ChrisForrence所提到的,我认为这是在php中转义引号的问题。你需要在'O’Gorman'
您可以在双引号中使用单引号,例如"O'Gorman"
,也可以使用反斜杠'O\'Gorman'
答案 1 :(得分:0)
您可以尝试使用utf8_encode()作为POST数据。