MySQL에서 아포스트로피(작은따옴표)가 포함된 삽입 쿼리에는 구문 오류가 발생할 수 있습니다. 특히 아포스트로피와 관련하여 "SQL 구문에 오류가 있습니다..." 오류가 발생하는 경우 성공적인 데이터 삽입을 보장하는 솔루션이 있습니다.
핵심 솔루션은 백슬래시(\ ) 성격. 예를 들어 "Kellog's"라는 문자열은 "Kellogg\'s"로 작성해야 합니다. 백슬래시로 아포스트로피를 이스케이프함으로써 MySQL은 다음 문자를 구문 표시기가 아닌 리터럴로 해석합니다.
또한 삽입할 데이터를 준비할 때 MySQL의 mysql_real_escape_string() 함수를 활용하는 것이 좋습니다. 이 기능은 아포스트로피를 포함한 특수 문자를 자동으로 이스케이프하여 잠재적인 SQL 삽입에 대한 포괄적인 보호 기능을 제공합니다. 다음 예를 고려하십시오.
function insert($database, $table, $data_array) {
$mysql_connect = connect_to_database();
mysql_select_db($database, $mysql_connect);
foreach ($data_array as $key => $value) {
$tmp_col[] = $key;
$tmp_dat[] = "'" . mysql_real_escape_string($value) . "'"; // Escaping
}
$columns = join(',', $tmp_col);
$data = join(',', $tmp_dat);
$sql = 'INSERT INTO ' . $table . '(' . $columns . ')VALUES(' . $data . ')';
$result = mysql_query($sql, $mysql_connect);
if (!$result) {
echo 'MySQL Update Error: ' . mysql_error($mysql_connect);
$result = '';
} else {
return $result;
}
}
이 방법을 사용하면 구문 오류나 보안 취약점 없이 MySQL 테이블에 아포스트로피가 포함된 데이터를 삽입할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3