-2

これが私のコードです:

$sql="INSERT INTO reg ('name','email','add',c_no,'user_name','pass','mess')
VALUES
('$_POST[name]','$_POST[email]','$_POST[add]','$_POST[number]','$_POST[user]','$_POST[pass]','$_POST[comment]')";

私が得るエラーは次のとおりです。

エラー: SQL 構文にエラーがあります。''name','email','add',c_no,'user_name','pass','mess') VALUES ('admin', 1 行目の「swapni」

4

5 に答える 5

1

まず第一に、コードは SQL インジェクションに対して脆弱です: PHP で SQL インジェクションを防ぐにはどうすればよいですか?

また、フィールド名は ' でカプセル化されます。MySQL の予約語と一致しない場合は、' を使用するか、何も使用しないでください。

3 番目の mysql_* は非推奨です: PHP で mysql_* 関数を使用してはいけないのはなぜですか?

4 番目:"...('$_POST['something']','..."非常に悪い習慣です。最新の PHP では機能しないと思います。次のように記述することを強く検討する必要があります。"...('" . $text_to_insert . "','..."

MySQLi でのこのすべての問題の解決策:

$db=new mysqli("server","username","password","database");
$insert_stmt=$db->prepare("INSERT INTO reg (name,email,add,c_no,user_name,pass,mess) VALUES (?,?,?,?,?,?,?)");
$insert_stmt->bindParam("sssisss",$_POST["name"],$_POST["email"],$_POST["add"],$_POST["c_no"],$_POST["user_name"],$_POST["pass"],$_POST["mess"]);
$is_successful=$insert_stmt->execute();
于 2013-10-09T20:07:51.737 に答える
0

ちょっと私は日付から日付までのデータを取得するために演算子の間を使用しています。

クエリは....

SELECTお客様からの.*,フィードバック.*,フィードバック.IDas fid FROM (フィードバック) LEFT OUTER JOINお客様ONお客様.のフィードバックID=フィードバック.ID WHEREフィードバック.spa_id= '1' ANDフィードバック.全体評価の!= '' ANDフィードバック.fb_dateBETWEEN "2014-06-01" and "2015-10-30"

このクエリを使用すると、日付「2015-10-30」のデータを取得できません

ありがとうございました。

于 2015-10-30T11:34:12.410 に答える