2011-11-12 7 views
-1

私は機能が何であるかを理解し、PHP.But、このいずれかを学びながら、私はいくつかを作成したPHP、MySQLを学習し、PHPスクリプト

function get_director($director_id) { 
global $db; 
$query = 'SELECT 
     people_fullname 
    FROM 
     people 
    WHERE 
     people_id = ' . $director_id; 
$result = mysql_query($query, $db) or die(mysql_error($db)); 

$row = mysql_fetch_assoc($result); 
extract($row); 

return $people_fullname; 
} 

今日この機能に出くわしましたよもう少し複雑です。私は理解できません。

WHERE people_id = ' . $director_id 

私は一重引用符でMySQLの文が終わると思いますか?そしてそれは引数と連結されますか?

+0

SQLインジェクションを避けるには、 'addSlashes($ director_id)'を使用してください。 –

+1

@YzmirRamirezそれは役に立ちません –

+2

mysql_real_escape_string()。 addSlashesではありません。 –

答えて

1

私は一重引用符でMySQLの文を終わらせると思いますか?そしてそれを引数で連結しますか?私を助けてください。

これは間違いありません。

http://php.net/manual/en/language.operators.string.php

<?php 
$a = "Hello "; 
$b = $a . "World!"; // now $b contains "Hello World!" 

$a = "Hello "; 
$a .= "World!";  // now $a contains "Hello World!" 
?> 

EDIT:WHERE句の意味は最高文全体が何をするかの擬似説明によって説明されます。

誰もが名前を指定した場合、そのpeople_idは、関数に渡される値と等しいです。

しかし、あなたがこれらのことを評価していて、基本的なSQLを理解していないと、頭がおかしくなります。 Tiztag PHP/MySQLチュートリアル全体を読むことをお勧めします。

http://www.tizag.com/mysqlTutorial/

+0

コードのWHERE句の意味を教えてください。 – NissGTR

+0

編集が追加されました。 upvote/acceptを評価してください。 –

1

はい、あなたが正しい、単一引用符は、SQL文字列を終了し、指定された引数を連結します。値を印刷する場合も同じです。

echo 'This is the director ID :'.$director_id; 
1

私はこの演算子を「SQL文」と呼んでいません。そして、それが「閉じた」とは言いません。
PHPの場合、特に意味のない文字列です。
引用符では、SQL文ではなく、この文字列リテラルが終了します。

厳密に言えば、ここでは単に文字列リテラルと変数を連結したものです。

完全な完全なSQL文が結果として得られます。

+0

$ query変数が実際に何をしているのか教えてください。具体的には、 WHERE people_id = 'とは何ですか? $ director_id; コードの一部は何ですか?people_fullnameからデータを取得する条件は何ですか? – NissGTR

+0

これは別の質問としてよくお尋ねください。 PHPを使わずにこのクエリを投稿するだけで、引用符を囲まずにクエリ自体を公開する(一貫性を持たせるためにpeople_id = 1にする) –

+0

WHERE句の意味を知りたい。別スレッドを投稿する必要がありますか? – NissGTR

1

。(ドット)は、PHPの連結に使用されます。
あなたがdirector_id $に32を渡すと、最終的なクエリはあなたがdirector_id $に43を渡すと、最終的なクエリはpeople_id = 43人から
選択people_nameなりますpeople_id = 32
人から
選択people_nameになりますが

。(dot)は、$ director_idの値を一重引用符で囲んだ文字列に追加するために使用されます。

最後のクエリはmysqlに渡されます。 。(ドット)を使うことは、mysqlで実行したい最後のクエリを生成するPHPの単なるメソッドです。