私は夢中になるかもしれませんが、私は昨日働いていたコードを誓うと今は動作していません。私はそれがデータベースに挿入されていないことに気付きました。エラーが発生しています:SQL構文にエラーがありますか?それを見つけることができません
You have an error in your SQL syntax; check the manual that corresponds
to your MariaDB server version for the right syntax to use near 's',
'39866', '9780448438047', 'Miss Spider's Sunny Patch Friends: Fun with Bounc' at line 1
以下の質問があります。私はエスケープ文字列/プリペアドステートメントを使用していないことを知っていますが、これは単なるローカルホストナンバーcruncherであるためです。
$insert = mysqli_query($connect, "INSERT INTO books
(subject, booknum, isbn, title, author, publisher, year,
format, mark, hurt, pubprice, srp, avail) VALUES
('$subject', '$booknumber', '$isbn', '$title', '$author',
'$publisher', '$year', '$format', '$mark', '$hurt',
'$pubprice', '$srp', '$avail')") or die(mysqli_error($connect));
それも、その行をコメントアウトし、ちょうどやってのように思える:
$insert1 = mysqli_query($connect, "INSERT INTO books (subject) VALUES
('$subject')") or die(mysqli_error($connect));
もエラーにつながります。私はこれはエラーが実際に私のDB接続自体に位置していることを推測している?私が使用しています:
include 'db.php';
をしかし、私は言ったように、このアプリケーションは、最後の夜を働いていた:ページの最上部に含まれている
<?php
$connect = mysqli_connect("localhost", "root", "", "wholesale");
if(mysqli_connect_errno()) {
echo "Failed to connect. Error: " . mysqli_connect_error();
}
。それ以来変更されているのは、私が覚えている限り、コンピュータの電源を入れ直してxamppを再起動したことだけです。
ミス・スパイダーの後に単一引用符が問題 – Steve
である、あなたの価値の一部は、単一引用符を持っているようだということ。 dbに一重引用符を挿入すると、適切にエスケープする必要があります。あなたがSQLインジェクションを避けるためにユーザーデータを扱うときに準備されたステートメントまたはpdoを使用しようとします。 – JYoThI
あなたのコードはSQLインジェクションの影響を受けやすいです。パラメータ化されたクエリを使用してください。 https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/60496#60496 –