문제점이 있습니다. php에서 이와 같이 삽입하면 :MySql 이진 데이터를 db에 오류없이 삽입하십시오.
sql = "INSERT INTO mytable (id, value)
VALUES ('sds83','".$EncryptedString."')";
다음 쿼리를 실행하면 가끔 작동하지만 가끔은 그렇지 않습니다. 문제는 $ EncryptedString에 ':') ') 과 같은 문자가 포함되어 구문 오류가 발생한다는 것입니다. $ EncryptedString은 바이너리 데이터를 포함하고 있는데 어떻게이 문제를 해결할 수 있습니까?
원래 문자열은 이미 이스케이프 처리되었지만 mcrypt를 사용하여 암호화되었고 새로운 암호화 된 값이 $ EncryptedString에 저장되었습니다. 내가 다시 이스케이프하면 DB에서 데이터를 가져올 때 문자열을 암호 해독 할 수 있도록 모든 문자가 보존됩니까? – user962449
아니요, 데이터를 가져올 때 이스케이프 처리를하지 않으면 stripslashes가 사용됩니다 http://www.php.net/manual/en/function.stripslashes.php 그리고 모든 것이 잘 될 것입니다 – Mob
나는 이해하지 못합니다. . 문자열이나 스트라이프 슬래시를 이스케이프하도록 권하고 있습니까? 나는 $ EncryptedString의 값을 바꿀 것이기 때문에 어느 쪽도 작동하지 않을 것이라고 생각한다. 이스케이프 또는 스트라이크를 $ EncryptedString을 삽입 할 때 삽입하면 암호화 된 문자열의 값이 변경되고 나중에 데이터베이스에서 가져올 때 문자열을 해독하는 데 중요한 슬래시가 누락됩니다. 내가 놓친 게 있니? 또는 mysql 이스케이프 및 스트립 슬래시가 다르게 작동합니까? – user962449