ここで本当に奇妙なことが起こっています。mysqli クエリにはこのメソッドがあります。
public function select($options) {
$default = array (
'table' => '',
'fields' => '*',
'condition' => '2',
'order' => '1',
'limit' => 50
);
$options = array_merge($default,$options);
$query = "SELECT {$options['fields']} FROM {$options['table']} WHERE {$options['condition']} ORDER BY {$options['order']} LIMIT {$options['limit']}";
if ($result = $this->conn->query($query)) {
while ($row = $result->fetch_assoc()) {
$rows[] = $row;
}
return $rows;
} else {
printf("Query failed: %s\n", $mysqli->error);
exit;
}
}
クエリが実行されると、$rows が取得され、すべてが魅力的に機能します。しかし、配列内の特定のキーを取得しようとすると、特定のメッセージなしで「クエリに失敗しました:」が表示されます:S
$options = array(
'table' => 'settings',
'fields' => 'setting_wall_post,setting_status_tag,setting_photo,setting_like,setting_comment',
'limit' => '1',
'condition' => "setting_id = 6",
);
$check = $this->mysql->select($options);
print_r($check);
$check = $check[0];
if($check["setting_wall_post"]) //if I comment out this IF block it works :(
$this->scope["wall_post"] = "publish_stream";
また、mysqli接続を閉じようとしたところ、
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli
この IF ブロックは、mysqli で動作するように動作しています:S
では、問題は、ここで何が問題なのかということです。「setting_wall_post」にアクセスできないのはなぜですか? そのIFブロックをコメントアウトすればうまくいくので、その部分が問題だと思います。