PHPを使用してデータベースにクエリを実行しています。私はプログラムで多くの質問を実行するのに成功していますが、最近の質問が私に問題をもたらしました。mysqli_queryの書式設定
これは正常に実行され、データベース上でHeidiSQLで直接使用された場合に正しい出力を生成します。私はPHPの変数の実際のチーム名をスワップアウト、次のようにプログラムでそれを実装してみました。このバージョンで
$result = mysqli_query($link, "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')") ;
、代わりになるように見える、括弧の組み込みセットはそのように識別されていないようです見積もりの一部。このバージョンは出力を生成しませんでした。カッコの第2セットを削除
が$result = mysqli_query($link, "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2'") ;
、それは私がいつでも$チャンピオンと$準優勝の試合のためにタプル与えて、実行しますが、ロジックが異なっ読み込むので、希望の結果が得られていない次のよう
は、私はそれを修正しましたまたは$ RunnerUp2が2位になるときはいつでも。もともと私がPHPを使用することを意図していたので、このステートメントを実行するにはどうしますか?
UPDATEは:変数にクエリを入れた後、次のように:
$query = "SELECT Champion, RunnerUp
FROM playoffs
WHERE Champion = '$champion'
AND (RunnerUp = '$RunnerUp' OR RunnerUp = '$RunnerUp2')";
、それをエコー、私は
SELECT Champion, RunnerUp FROM playoffs WHERE Champion = '' AND (RunnerUp = 'Montreal Canadiens' OR RunnerUp = 'Toronto St. Patricks')
だからそれが何らかの理由のように見える出力、私のチャンピオン変数を決して得ませんでした何かを受け取る。これは元々それを呼び出すとき、それは「チャンピオン」の代わりに「チャンピオン」と呼ばれたからです。
'$ query'という変数の中にクエリを置くと、' echo $ query; 'を実行して、期待通りにクエリが表示されるかどうかを確認できます。 '$ champion'、' $ RunnerUp'、または '$ RunnerUp2'変数の末尾に余白があるかもしれません。それから、mysqli_query($ link、$ query);と呼ばれます。問題が解決しない場合は、問題を更新してください。 – varlogtim
これは、私がこれらの行の前に書式設定エラーを起こした場所を把握するのに役立ちました。ありがとう – user3068177