-1

私のSQLステートメントは、上下の2つの連想キーの配列を返します。

query = 'SELECT `up`,`down` FROM `records` WHERE `id`=id'

次のような両方の変数を 1 行で設定できる方法はありますか。

$up, $down = 'SELECT `up`,`down` FROM `records` WHERE `id`=id'

up と down がそれぞれの値を取るように?

4

3 に答える 3

3

からの戻り値mysqli::query()は、すぐに連想配列ではなく、「結果セット」です。クエリが失敗した場合でも、それを取得することはできませんが、FALSE. だからあなたができる間

list($up, $down) = $db->query ("SELECT up, down FROM records WHERE id='id';")->fetch_all();

これでは、クエリが実際に機能したかどうかを確認できないため、クエリを分割することをお勧めします。

于 2013-04-24T23:44:16.397 に答える
2

SQL 呼び出しを行った後、次のような連想配列を取得した場合:

array(
  'up' => 'foo',
  'down' => 'bar'
);

次に、 を使用extract()して変数$upおよびを取得できます$down

だからあなたはこれを行うことができます:

// no need to initialize $up and $down

extract(exec_query()); // asusming exec_query() returns the assoc array defined above
echo $up;  // will print 'foo'
echo PHP_EOL;
echo $down;  // will print 'bar'

PS - これは可能ですが、読みやすさの観点からは非常に悪いので、強くお勧めしません。

于 2013-04-24T23:41:58.837 に答える
1

list()1 つの関数呼び出しから複数の値を割り当てることができますが、この場合、クエリを実行してデータベース サーバーからデータをフェッチする必要もあります。

例えば:

list($up, $down) = mysqli_fetch_array($queryResult, MYSQLI_ASSOC);
于 2013-04-24T23:41:16.613 に答える