2

MySQL データベースからデータを取得するための PHP コードをいくつか書きました。

私の NetBeans デバッガー (v7.4) は、すべての配列要素と関連するキー ($data_array_from_db の) を表示します。これらのキーは、データベース テーブルの列フィールドに対応します。ただし、データベース フィールドが入力されていない (値 NULL) キーは除きます。

ただし、以下のコードで array_key_exists() 関数が実行され、そのような未入力のデータベース フィールドに対応する「akey」と表示されると、array_key_exists() は (予想される false ではなく) 「true」値を返します - キーが存在するかのように(繰り返しますが、NetBeans デバッガーは $data_array_from_db['akey'] を表示しません)。

データベース関数 array_key_exists() が正しく機能することは確かです。私は何か間違ったことを解釈していますか?対応するデータベース値が NULL の場合、キーは存在しますか?

$data_array_from_db = $corpdb->GetSpecificDBRecords($sqlquery5); //GetSpecificDBRecords() includes some PDO statements
if (array_key_exists('akey', $data_array_from_db)) { // Database value is optional; exists?
  $response_array[0]['akey'] = $data_array_from_db['akey']; // This line executed while akey does not show in NetBeans debuggers
}
else { // Database value does not exist; set to 0
  $response_array[0]['akey'] = 0;
}
4

2 に答える 2

0

または、存在するかどうか、空でないかどうかを確認します。

if (!empty($data_array_from_db['akey'])) {
于 2013-11-08T17:14:27.653 に答える