1

これを理解できないようです。アプリケーション全体ですべてのデータベースクレデンシャルをグローバル化しようとしているため、グローバル定数ファイルでデータベーステーブル名を設定しています。文字列に定数変数を設定しようとしても、惨めに失敗するクエリが1つあります。誰かアイデアはありますか?

定数変数変更前のクエリは次のとおりです。これは機能します。

$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM crmManager");

すべて失敗するいくつかの異なる試行を次に示します(定数変数はTBL_NAVIGATIONです)。

$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM " . TBL_NAVIGATION . ");    
$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM".TBL_NAVIGATION.");
$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM".TBL_NAVIGATION);
$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM {TBL_NAVIGATION}");
$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM".TBL_NAVIGATION");

私はそれを最初に変数として設定しようとさえしました:

$table = TBL_NAVIGATION;
$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM {table}"); 
 // I've tried every possible way to include the variable

どうすればこれを修正できますか?ありがとう!

4

2 に答える 2

0

ここで学ぶべき教訓は、常に構文を確認することです。

正しいクエリは次のとおりです。

$stmt = $dbh->prepare("SELECT MAX(salesPosition) FROM ".TBL_NAVIGATION);

目覚めてくれた魁に感謝!

于 2012-04-27T10:51:35.147 に答える
0

定数の後に " は必要ありません。

"SELECT MAX(salesPosition) FROM " . TBL_NAVIGATION 
于 2012-04-25T07:25:16.493 に答える