ホームページ >バックエンド開発 >PHPチュートリアル >PHPのナレッジポイントの蓄積
長い間ネイティブ PHP を使用して何も書いていませんでしたが、最近プロジェクトの関係でネイティブ PHP を使用する必要があります。今になって初めて、自分が PHP を勉強していると言う勇気すらなかった最初の発言さえ忘れていたことに気づきました。 (おそらくそれは、私が以前にフレームワークを使用したことがあり、フレームワークがネイティブの知識をパッケージ化しているためです。残念ながら、私は多くのことを徹底的に学んでいません。) ここで、
の間に遭遇した問題のいくつかを記録します。 php と html の相互ネスト: 無意識のうちに、HTML にネストされた php にはシングルクォーテーションとダブルクォーテーションがたくさんあるだろうと思っていますが、体系的に区別したことはありません。
(1) php に HTML タグを埋め込みます:
e60a2397137d10f1d0f304a3671ebb27Hello World94b3e26ee717c64999d7867364b1b4a3' ?> //HTML コードのみが出力されます
echo "868c3f8d39a371013a78a87c30e1b0d8".$val."f7c1c7c75d9656e41e5252abd1cd773b'; echo $str ; //まず出力する内容を変数に代入し、その変数を出力します
(2) htmlにphpを埋め込みます
9ba1b30c60b2f577218984918cf18164"///f94131a5e5c769fb3256e51d089a06fe
ff6d136ddc5fdfeffaf53ff6ee95f185a756dea9a055b6ae6b6a69c63fb54475 25edfb22a4f469ecb59f1190150159c6アイテム番号 c96b3f739684cfa99d2d4d7306044544 929d1f5ca49e04fdcb27f9465b944689 SQL ステートメントの作成時にエラーが見つかりました
例:
$sql = "update user set `username`=$username,`password`=$password";
Unknown columns 'yuanfang' というプロンプトが表示されます。 'field list'
の ' は、ユーザー名の型が数値の場合は数値そのものが挿入され、ユーザー名の型が char の場合は
update user set ` と同等であるためです。 username`=yuanfang、`password`=abd、これは当然 SQL と矛盾します。小さな細部にこのような大きな謎が隠されていることがわかります。勉強していて、知識はまだ微妙なところから得られるようです。これを
$sql = "update user set `username`='$username',`password`='$password'" またはこの
$sql="INSERT INTO user(user , pass)values('".$user."','".$pass."')";
上記の質問の多くは、' ' と " " の違いに関するもののようです。次に、一重引用符と二重引用符の違いを理解するためにさらに一歩進めました。
(1) " "二重引用符で囲まれたフィールドはコンパイラによって解釈され、HTML コードとして出力されます。 ' '一重引用符内の単語は解釈されず、直接出力されます。
例:
- $abc='私の名前は tome';
- echo $abc //結果は次のようになります: 私の名前は tom
- echo '$abc' / /結果は次のようになります: $abc
- echo "$abc" //結果は次のようになります: 私の名前は tom
一重引用符と二重引用符を使用する場合は特に注意してください。注意すべき状況がいくつかあります。 to:
(1) 変数を含む文字列を出力する場合:
$username = $_POST['username'];
この効果を出力したい場合:
this is my name + 受信 ユーザー名を記述する方法は 2 つあります。
- echo "this is my name $username"; //$username は自動的に解析されます
- echo 'this is my name'.$username; // を使用します。シングルクォーテーションで出力します。
(2) SQL 文を使用する場合
SQL 文は " " 内に配置する必要があるため、SQL 文内に変数がある場合はどうすればよいですか
- $sql = "select * from user where username='shine'";//これが最も簡単な方法です
- $sql = "select * from user where username= '" .$abc. "' ";
上の文はこれを理解できます方法:
1. "SELECT * FROM user WHERE username=' " 2. 次の文字をリンクするために使用されるコネクタ
3. $abc は変数
の値を表示します。 .." ' "ハイフン リンクの後の一重引用符 (条件内の最初の一重引用符と一致するため)
それほど複雑である必要はなく、次のように記述できます:$query="SELECT * FROM user WHERE username=' $abc' ";
二重引用符内のすべてがサーバーによって解析され、一重引用符は通常の文字として扱われることが理解できます。
(3)$query ="SELECT * FROM user WHERE username=' ". $abc["name"]." ' "; //より複雑な状況
<br />