내가 PDO이 쿼리를 실행하려고 실패삽입 특수 문자와 JSON 인코딩 값은
UPDATE categories
SET keywords = '{"bg":["keyword1","\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 "]}'
WHERE id = 4;
문제는 백 슬래시없이 16 진수 값을 기록 할 것이다 ("\") . 그것은 내 애플 리케이션뿐만 아니라 PHPMyAdmin에서 백 슬래시없이 표시됩니다.
이 쿼리에서 exec()를 사용하고 동적/변형 된 변수없이이 전체 텍스트 쿼리를 사용해 보았습니다. PDO 매개 변수는 다음과 같습니다.
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
여기에 무슨 일이 일어 났는지 설명 할 수 있습니까? 감사!
업데이트 : mysql의 CLI에서이 정확한 쿼리를 실행 한 다음 거기에 표시하고 문제가 동일합니다. 모든 백 슬래시가 사라졌습니다. 따라서 문제는 PDO와 관련이없는 것 같지만 MySQL 또는 나! 내 버전은 5.1.53입니다.
코드 샘플이 많은 도움이 될 수 있습니다. – J0HN
준비 및 실행 위치와 관련된 코드를 추가하십시오. – hakre
고마워,하지만 PHP와 관련이없는 것처럼 보입니다. mySQL의 CLI로 느슨한 결과를 얻었습니다. – Nabab