Apabila cuba memasukkan data yang mengandungi petikan tunggal ke dalam pangkalan data MySQL, anda mungkin menghadapi ralat. Mesej ralat biasanya menunjukkan isu sintaks berhampiran aksara petikan.
Untuk menyelesaikan isu ini, elakkan petikan dalam data dengan garis sengkang ke belakang (). Sebagai contoh, "Kellogg's" harus ditulis sebagai "Kellogg's".
Selain itu, untuk meningkatkan keselamatan, adalah disyorkan untuk menggunakan fungsi mysql_real_escape_string untuk melepaskan semua input yang disediakan pengguna, melindungi daripada suntikan SQL.
Pertimbangkan versi fungsi sisipan berikut yang menggabungkan kedua-dua teknik:
<code class="php">function insert($database, $table, $data_array) { // Establish MySQL connection and select database $mysql_connect = connect_to_database(); mysql_select_db($database, $mysql_connect); // Prepare column and data values for SQL command foreach ($data_array as $key => $value) { $tmp_col[] = $key; $tmp_dat[] = "'" . mysql_real_escape_string($value) . "'"; // Escape against SQL injections } $columns = join(',', $tmp_col); $data = join(',', $tmp_dat); // Construct and execute SQL command $sql = 'INSERT INTO ' . $table . '(' . $columns . ')VALUES(' . $data . ')'; $result = mysql_query($sql, $mysql_connect); // Handle SQL errors or return result if (!$result) { echo 'MySQL Update Error: ' . mysql_error($mysql_connect); $result = ''; } else { return $result; } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Ralat MySQL Apabila Berurusan dengan Apostrof dalam Sisipan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!