-2

このクエリの違いは何だろうと思っています:

$query = "SELECT * FROM users WHERE id='".$_SESSION['mysql_result_id']."'";

変数を次のように作成します。

$mysql_result_id = $_SESSION['mysql_result_id'];
$query = "SELECT * FROM users WHERE id='".$mysql_result_id."'"; 

どちらも似ているように見えますが、2 つ目は機能しません。また、セッションの値が必要なだけなのに、なぜ連結が必要なのですか? my に格納されている値が である$_SESSION['mysql_result_id']'2'id=2ましょう。なぜ連結する必要があるのですか?なぜ私はちょうど置くことができないの"WHERE id=$mysql_result_id"ですか?

4

2 に答える 2

1

関数の外部で変数を初期化しています

$mysql_result_id = $_SESSION['mysql_result_id'];

この変数は関数の範囲外ですが、$_SESSIONは範囲外です。それが機能しない理由です。PHP変数スコープについてはこちらをご覧ください。

方法2を機能させたい場合は、これを移動する必要があります

$mysql_result_id = $_SESSION['mysql_result_id'];

関数内(質問に貼り付けてから削除したもの)

そして、2番目の質問に答えるには、数値を引用符で囲む必要はありません。

于 2013-01-21T04:14:03.820 に答える
-2

それは、次の違いは何かを尋ねるようなものです。

mysql_query("select now() from dual");

と:

$sql = "select now() from dual";
mysql_query($sql);

正当な理由もなくメモリを浪費しているだけです。

于 2013-01-21T03:57:11.990 に答える