ホームページ  >  記事  >  バックエンド開発  >  MYSQL ステートメントに疑問がある

MYSQL ステートメントに疑問がある

WBOY
WBOYオリジナル
2016-06-23 14:13:141092ブラウズ

$sql="select * from news where id = '".$_GET['id']."'"
$rs=mysql_fetch_array($query); $sql="select * from news where id = $_GET['id']"; と書くとなぜ上記のクエリ文が間違ってしまうのでしょうか
初心者の方に、 の違いを教えてください。一重引用符と二重引用符、なぜ上記のように書く必要があるのか​​わかりません。ありがとうございます。


ディスカッションへの返信 (解決策)

{}
$sql="select * from news where id = {$_GET['id']}"; を追加できます

$sql="select * from news where id = $_GET['id']";


これは正しいはずです。どのようなエラーが表示されますか? ?

{} を追加できます
$sql="select * from news where id = {$_GET['id']}";

説明していただけますか?なぜそれがうまくいかないのか、なぜこれがあなたにとってうまくいくのか?


$sql="select * from news where id = $_GET['id']";

これは正しいはずです。どのようなエラーが表示されますか? ?

エラー: 解析エラー: 構文エラー、予期しない '' (T_ENCAPSED_AND_WHITESPACE)、C:Program FilesApache Software FoundationApache2.2htdocsjustedit .php の 5 行目に識別子 (T_STRING) または変数 (T_VARIABLE) または数値 (T_NUM_STRING) が必要です

これはPHP の規約では、その理由はありません
連想配列のメンバーが二重引用符で囲まれている場合、
"$_GET[id]"

または

"{$_GET['id']}"

と記述する必要があります。 PHP の規約では、その理由はありません
連想配列のメンバーが二重引用符で囲まれている場合、
"$_GET[id]"

または

"{$_GET['id']}"

と記述する必要があります。フォーマットに従ってください 2 エラーは報告されません。
$nc=$_POST[nc];
$sql=mysql_query("select * from tb_user where name='".$nc."'",$conn);

$nc は $_POST を受け入れる通常の変数です[ nc ]、では、他の人が「select * from tb_user where name='".$nc."'」と書いているのを見て、なぜまだこのように書くのですか

echo $sql; すべてが明らかになります

なぜわかりますか他の人は今でもこのように「select * from tb_user where name='".$nc."'」と書いています

それは、彼が元々使用していた言語を知らないか、慣れているからです

もちろん、それは彼が持っている可能性もあります他の人の誤った情報を聞いて、

"select * from tb_user where name='$nc'"

アドレス指定が必要で、結果として効率が低下します
誰もが知っているように、"select * from tb_user where name='$nc"" と考えます。 『
宛名書き工程もあります 毛織物?

ああ、そのように書かれていたのかと思いました。PHP の一重引用符と二重引用符は、C や C++ のものと混同されています。文字列と単一の文字。皆さん、ありがとうございました!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。