이상한 것으로 알려 졌는데 mysql_real_escape_string
기능이 있습니다. “
또는 ”
을 이스케이프 처리하지 않습니다. 예를 들어 “TEST”
은 \“TEST\”
으로 변환되지 않습니다.mysql_real_escape_string이 모든 유형의 문자를 이스케이프 처리하지 못합니다. "
기능은 (자세히 보면 당신은 다른 참조) "
와 함께 잘 작동
이 문제를 해결하는 방법에 대해 어떤 생각, 차라리 처음부터이 기능을 쓸 수 없습니다. 더 이상 사용되지 않습니다. 대안이 있습니까?
수정 : 답변 해 주셔서 감사합니다. 명확하게하려면이 문자열을 삽입하려고합니다. "내가 좋아하는 것"카탈로그 \ r \ n을 DB에 삽입하고 어떤 이유로 작동하지 않습니다. 모든 다른 문자열에 대해 잘 작동하며 오류 메시지가 나타나지 않습니다, 그것은 단지 DB에 나타나지 않습니다. 그래서 나는 "과 관련이있을 것으로 생각했습니다.
나에게 쉽게 가라!
EDIT2
$interestTable = "5431591 1 Things I Like” <br>";
//problem lies here
$count = 0;
$interestTable = preg_replace_callback('/<br>/', function($match) use($tagName, &$count) {
return $tagName[$count++][0] . ' ' . PHP_EOL;
}, $interestTable);
//$interestTable = "5431591 1 Things I Like” catalog \r\n" after format
$interestTable = mysql_real_escape_string($interestTable);
echo $interestTable;
mysql_query("INSERT INTO $tbl_name(userID,storyID,rank, storyType, interestTable)VALUES('$userID','$storyID','$rank','$storyType','$interestTable')", $dbh1);
EDIT3 내가 잘못하지 않았다, 나는에서 문자열을 변경 것 I 좋아요 "카탈로그 \ r에 \ n을것 I AA 카탈로그 \ r에 \ n을에 및 그것은 효과가 있었다. 왜 이런 일이 일어나는지 전혀 모르겠다. 어쩌면 문자열로 변환 한 후 인코딩이 엉망이 될지 모르지만 확실하지 않다. "을 문자열에서 제거한 후에 모든 것이 올바르게 작동 함을 알 수 있습니다.
mysql_ 함수 사용을 중지하십시오. – Kermit
피드백 보내기 현재 상태 이것은 의도적으로 설계된 동작입니다. 그 따옴표는 무해합니다. – SLaks
[** 새 코드 **에서 mysql_ * 함수를 사용하지 마십시오. (http://bit.ly/phpmsql). 그들은 더 이상 유지되지 않으며 [공식적으로 사용되지 않습니다] (http://j.mp/XqV7Lp). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). – ceejayoz