반응형
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE4\xD5\xABtZM...' for column 'Name'
이미 Stackoverflow에 게시 된 모든 답변을 읽었으며 문제도 Google 검색했지만 제안 된 모든 솔루션은 이미 내 코드에 있습니다. 데이터베이스, 테이블 및 모든 열에는 데이터 정렬 utf8_general_ci
가 있습니다. 아래에서 관련 코드를 볼 수 있습니다.
application.ini
resources.db.adapter = "Pdo_Mysql"
resources.db.params.charset = "utf8"
resources.db.params.host = "localhost"
resources.db.params.username = "********"
resources.db.params.password = "********"
resources.db.params.dbname = "dbname"
database.php
public static function getDb()
{
if (self::$Db === NULL)
self::$Db = Zend_Db_Table::getDefaultAdapter();
return self::$Db;
}
model.php
$Values = array(
'Id' => $this->Id,
'Name' => $this->Name,
'CreationDate' => $this->CreationDate,
);
$RowChanged = $Db->insert('TABLENAME', $Values);
encrypt ()
public static function encrypt($Data, $EncryptionKey)
{
$AES = new Crypt_AES();
$AES->setKey($EncryptionKey);
return $AES->encrypt($Data);
}
표
CREATE TABLE IF NOT EXISTS `table` (
`Id` mediumint(8) unsigned NOT NULL,
`Name` varchar(200) DEFAULT NULL,
`CreationDate` date NOT NULL,
PRIMARY KEY (`Id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
질문 : 문제를 해결하고 데이터를 데이터베이스에 저장하려면 어떻게해야합니까?
해결 방법
많은 암호화 및 압축 함수는 result might contain arbitrary byte values. If you want to store these results, use a column with a VARBINARY or BLOB binary string data type. This will avoid potential problems with trailing space removal or character set conversion that would change data values, such as may 2 진이 아닌 문자열 데이터 유형 (CHAR, VARCHAR, TEXT)을 사용하는 경우 발생합니다.
참조 페이지 https://stackoverflow.com/questions/8291184
반응형
'MySql' 카테고리의 다른 글
MySQL SELECT 문 mysql에서 사용자 정의 저장 프로 시저 호출 (0) | 2020.09.27 |
---|---|
MySQL : 일반 오류 : 1366 잘못된 문자열 값 (0) | 2020.09.27 |
MySQL 다른 테이블의 값을 기반으로 한 테이블의 레코드를 삭제하는 방법은 무엇입니까? (0) | 2020.09.27 |
MySQL Mysql BOOL 필드에 어떤 값을 사용해야합니까? TRUE / FALSE 또는 1/0, 왜? (0) | 2020.09.27 |
MySQL INSERT INTO ... 모든 열을 자세히 설명하지 않고 SELECT (0) | 2020.09.27 |
댓글