PHP/MySQLkeep einen Syntaxfehler bekommen (PHP/MySQL)
ich diese Fehler werden immer: „Sie haben einen Fehler in der SQL-Syntax, kontrollieren das Handbuch, die für die richtige Syntax zu Ihrer MySQL-Server-Version entspricht in der Nähe von "1" in der Linie 1 zu verwenden.
Ich bin bemüht, diese Abfrage zu passieren. Es funktioniert, es fügt in die mysql-Datenbank ein, aber dieser Fehler erscheint jedes Mal. Ich habe versucht, alles in der gleichen Zeile zu verwenden, doppelte Anführungszeichen in einfache Anführungszeichen geändert, alle Leerzeichen entfernt, die alles in die gleiche Zeile eingefügt haben, und die Art und Weise geändert, wie ich die Variablen ({$ Variable} an '. $ Variable.') Übergebe. und alles andere. Ich habe ein paar Stackoverflow-Fragen dazu gesehen, aber mit unterschiedlichen Lösungen. Ich weiß, dass wir '' in numerischen Feldern nicht übergeben können.
Ich denke, ich habe jetzt keine Optionen mehr. Brauche Hilfe! Dieser Fehler hält zeigt aber die Daten korrekt in meiner Tabelle eingefügt wird
hier ist der Code:
$user_id = get_current_user_id();
$prescription_name = $_POST['prescription_name'];
$date_created = date('Y-m-d');
$last_updated = date('Y-m-d');
$right_eye_sphere = $_POST['right_eye_sphere'];
$left_eye_sphere = $_POST['left_eye_sphere'];
$right_eye_cylinder = $_POST['right_eye_cylinder'];
$left_eye_cylinder = $_POST['left_eye_cylinder'];
$right_eye_axis = $_POST['right_eye_axis'];
$left_eye_axis = $_POST['left_eye_axis'];
$pd = $_POST['pd'];
$date_of_birth = $_POST['date_of_birth'];
$file_path = $_POST['file_path'];
$add_query = "INSERT INTO wew_prescription (
prescription_id,
user_id,
prescription_name,
date_created,
last_updated,
right_eye_sphere,
left_eye_sphere,
right_eye_cylinder,
left_eye_cylinder,
right_eye_axis,
left_eye_axis,
pd,
date_of_birth,
file_path
) Values (
NULL,
{$user_id},
'{$prescription_name}',
'{$date_created}',
'{$last_updated}',
'{$right_eye_sphere}',
'{$left_eye_sphere}',
'{$right_eye_cylinder}',
'{$left_eye_cylinder}',
'{$right_eye_axis}',
'{$left_eye_axis}',
'{$pd}',
'{$date_of_birth}',
'{$file_path}'
)";
$sql = $dbCon->query($add_query);
if (!mysqli_query($dbCon,$sql)){
die('Error: ' . mysqli_error($dbCon));
}else{
mysqli_query($dbCon,$sql);
echo "dados atualizados!";
}
Ihr Skript ist in Gefahr von [SQL Injection Attack] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Werfen Sie einen Blick auf, was passiert ist [Little Bobby Tables] (http://bobby-tables.com/) Sogar [wenn Sie Eingaben entgehen, ist es nicht sicher!] (Http://stackoverflow.com/questions/5741187/sql-injection-that-gets -around-mysql-real-escape-string) Verwenden Sie [vorbereitete parametrisierte Anweisungen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). –
Es ist ungewöhnlich, objektorientierte Stilfunktionsaufrufe '$ conf'-Abfrage ($ sql)' und Prozedurfunktionsaufrufe 'mysqli_query ($ con, $ sql)' zu mischen. Es ist auch etwas seltsam, das Ergebnis einer Abfrageausführung einer Variablen mit dem Namen $ sql zuzuweisen. Es ist nur ein variabler Name, es kann was auch immer sein. Aber wenn ich etwas einer Variablen mit dem Namen '$ sql' zuweisen würde, wäre es der SQL-Text, der Stringwert würde $ add_query' zugewiesen werden. Wie Barmar sagt, führt der Code die Zeichenfolge "1" aus. – spencer7593
danke Jungs! Ich schaue mir die vorbereiteten parametrisierten Anweisungen an! Ich bin ein Front-End-Entwickler lernen mysql –