$sql="テーブル セット nikename='{$nikename}' where userid={$userid}";
$sql=sprintf("テーブル セット nikename='%s' where userid=%d",$ nikename,$userid)
理解できません。今、php がとても人気があるように感じます
まず引用しなければならないような気がします
mysql_real_escape_string($nikename)
mysql_real_escape_string($userid)
2 番目のメソッドでは、%d は $userid が文字列ではなく数値である必要があると判断できます。
phpを勉強中なのですが、理解できません
$sql=mysql_query("update ulist set name='$name' where id=$id");
普段はこんな感じで書いています。何が違うのか分かりません。
習慣としては、最初に SQL を直接記述し、2 番目にそれをカプセル化することです。
2 番目の書き方は、1 番目の方法よりもわかりやすく、メモも必要ありません
$sql= "update table set nikename='{$nikename}' where userid={$userid}";
var_dump($sql);
2 つのメソッドはほぼ同じなので、最初のものには慣れています。ただし、どちらもデータのフィルタリングが必要です。そうでないと、インジェクションが発生します。
$sql="update table set nikename='{$nikename}' where userid={$userid}";
利点: 直感的。速度は2番目のものよりわずかに速いはずです。
欠点: SQL インジェクションのリスク。
$sql=sprintf("update table set nikename='%s' where userid=%d",$nikename,$userid)
利点: 直感的で、ユーザー ID を強制的に数字にします。
欠点: SQL インジェクションのリスク。
1 つ目の方が効率的だと思います
2 つ目は見ていません。私はかなり無知です。
実際、私は常に 2 番目のタイプでした (ここ数年、php プロジェクトに取り組んでいませんでした) 今月会社に行ったとき、1 番目のタイプの方が良いとは思いつきません、と言いました。長い間 PHP を書いてきた私の兄弟姉妹に聞きたい人は誰でも
今すぐ始めましょう
C に精通しているプログラマーは、2 番目の方法に慣れている必要があります
は、常に最初の書き方を意味します。 、、、、、
個人的には、2 番目の方法より 1 番目の方法の方が速いと思います、
それだけでも、クリックします、 結局、2 番目のタイプには、文字列をフォーマットする関数が必要です、
エコーを取得して出力します例として、
本には、前者の方が後者より効率的であると記載されています。
後者は値を返しますが、前者は値を返します。 いいえ、
もちろん PHP ドキュメントにはこれについて言及されていません。
さらに、現在 sprintf を使用しています。 、
もしかしたら、あなたの会社も同じように感じているかもしれません、
そして、MySQLi STMT を使用する方が sprintf よりも優れているでしょうか?
MySQLi STMT はより安全で読みやすいようです。
これは完全に私の個人的な意見です、私も初心者です(笑)。 。 。