前提・実現したいこと
phpでデータベースに引数を格納したいのですが、以下のようなエラーメッセージが表示されます。対処法がわからないのでご教授いただければ幸いです。
発生している問題・エラーメッセージ
Uncaught ArgumentCountError: mysqli_stmt::execute() expects exactly 0 arguments, 1 given in (ファイル名) mysqli_stmt->execute('INSERT INTO it ...') #1 {main} thrown in (ファイル名) on line 16
該当のソースコード
php
1<?php 2$dbh=mysqli_connect('localhost', 'root', '(パスワード)', 'item',(ポート番号)); 3 4$name = $_POST['name']; 5$color=$_POST['color']; 6$kind=$_POST['kind']; 7$take=$_POST['take']; 8 9$sql = "INSERT INTO it (name,color,kind,take) VALUES('$name','$color','$kind','$take')"; 10 11//SQL実行の準備をする 12$stmt = $dbh->prepare($sql); 13 14 15//SQLを実行 16$stmt->execute($sql); 17 18?> 19
$sql を設定後に表示させたらどんなん出ますか?
無知で申し訳ないのですが
$sql=...の後にecho $sql;を追加するということでしょうか?
INSERT INTO it (name,color,kind,take) VALUES('あ','赤','ズボン','膝')となっており引数の受け渡しはうまくいっている模様です
あー execute って引数いらなくないすかね?
いりませんでした…。解決しました。ありがとうございます!
(・∀・)b
$_POST で受け取った値を SQL 文に直接埋め込むのは SQL インジェクションの脆弱性があり、データの破壊や漏洩に繋がりますのでご注意ください。
https://qiita.com/kurodenwa/items/8807e79515c0e2b4dad9
ありがとうございます。修正してみます。
回答1件
あなたの回答
tips
プレビュー