を得たので、これは私のコードの一部しか関連のものだけです:
SQLインジェクション:それを避けるためにしようとしたが、エラー
if ($check == 0) {
$host = "localhost";
$user = "root";
$pass = "";
$db = "myfirstdb";
$connect = new mysqli($host,$user,$pass,$db);
if ($connect->connect_error){
die("Connection failed: " . $connect->connect_error);
} else {
echo "Connected successfully!";
}
//$sql = "INSERT INTO table1 (firstname , lastname , phone , email , date) VALUES (:fname, :lname, :phone, :email, :date)";
$secure = $db->prepare("INSERT INTO table1 (firstname , lastname , phone , email , date) VALUES (:fname, :lname, :phone, :email, :date)");
$secure->bindParam(':fname' , $firstname);
$secure->bindParam(':lname' , $lastname);
$secure->bindParam(':phone' , $phone);
$secure->bindParam(':email' , $email);
$secure->bindParam(':date' , $date);
$secure->execute();
/*if ($connect->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $connect->error;
}*/
$connect->close();
私はコードのエラーポップを実行するたびに、私が持っている問題がありますアウト:
Fatal error: Uncaught Error: Call to a member function prepare() on string in C:\xampp\htdocs\example\Index.php:206 Stack trace: #0 {main} thrown in C:\xampp\htdocs\example\Index.php on line 206
私はこのコードを使用して、SQLインジェクションを防ぐためにしようとしているが、私はそれを理解しているかどうかわかりません。
準備ができませんでした。エラーの確認に失敗し、エラーをそれ以降に伝播しました。具体的には、mysqliは名前付きプレースホルダをサポートしていません。まったく異なるライブラリでPDOセマンティクスを使用しようとしています。 **決して**外部リソースの操作で成功した**と仮定します。常に失敗と見なし、失敗をチェックし、成功を快活な驚きとして扱います。 –
あなたは$ db変数を持っていません。あなたは$ connectを持っています。 –
また、渡している変数がどこに設定されているのかわかりません。 – xQbert