When attempting to insert data containing single quotes into a MySQL database, you may encounter an error. The error message typically indicates a syntax issue near the quote character.
To resolve this issue, escape the quotes within the data with a backslash (). For example, "Kellogg's" should be written as "Kellogg's".
Additionally, for increased security, it is recommended to use the mysql_real_escape_string function to escape all user-provided input, protecting against SQL injections.
Consider the following version of the insert function that incorporates both techniques:
<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>
The above is the detailed content of How to Overcome MySQL Error When Dealing with Apostrophes in Data Insertion?. For more information, please follow other related articles on the PHP Chinese website!