-1

文字列に変数を埋め込むのが好きです -"I like $verb $noun in strings!"

しかし、その後、データベース アクセス スクリプトを設計していました。

$sqlfragment = "SELECT * from " . $databasetableprefix . "_user";

素晴らしい。しかし、変数を文字列に埋め込むとどうなるのでしょうか?!

私はこのようなことをしたい:

$sqlfragment = "SELECT * from $databasetableprefix_user";

しかし、それは変数からのものとして解釈されます$databasetableprefix_user

したがって、スペースを使用します。

$sqlfragment = "SELECT * from $databasetableprefix _user";

ただし、データベース テーブル名にスペースを使用することはできないため、これは機能しません。

(私が欲しいのは、この結果の文字列です: "SELECT * from cc_user"、 ifccはプレフィックスです。)

変数埋め込みを使用してこの文字列を作成できますか? おそらく、一種の「何もない」文字で、PHP が変数名の一部であると考えるのを止めますが、SQL には引き継がれませんか?

4

3 に答える 3

4
$sqlfragment = "SELECT * from {$databasetableprefix}_user";
于 2013-04-13T18:55:03.553 に答える
2

次のように変数を {} でラップします。

$sqlfragment = "SELECT * from {$databasetableprefix}_user";

于 2013-04-13T18:55:53.080 に答える
2

PHP マニュアル で詳しく説明されているように、中括弧を使用して、変数名の開始位置と終了位置を PHP に伝える必要があります。

$sqlfragment = "SELECT * from {$databasetableprefix}_user";

また、変数のソースを注意深く追跡したり、変数の値を検証したりしないと、簡単にセキュリティ リスクになる可能性があるため、変数を使用して SQL ステートメントを生成する場合は十分に注意してください。

于 2013-04-13T18:56:53.967 に答える