Beim Versuch, Daten mit einfachen Anführungszeichen in eine MySQL-Datenbank einzufügen, kann ein Fehler auftreten. Die Fehlermeldung weist normalerweise auf ein Syntaxproblem in der Nähe des Anführungszeichens hin.
Um dieses Problem zu beheben, maskieren Sie die Anführungszeichen in den Daten mit einem Backslash (). Beispielsweise sollte „Kellogg's“ als „Kellogg's“ geschrieben werden.
Zusätzlich wird zur Erhöhung der Sicherheit empfohlen, die Funktion mysql_real_escape_string zu verwenden, um alle vom Benutzer bereitgestellten Eingaben zu maskieren und so vor SQL-Injections zu schützen.
Betrachten Sie die folgende Version der Einfügefunktion, die beide Techniken beinhaltet:
<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>
Das obige ist der detaillierte Inhalt vonWie überwindet man MySQL-Fehler beim Umgang mit Apostrophen beim Einfügen von Daten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!