わかりました、動的関数を使用したことがありません。理由はわかりませんが、explode()、implode() などを使用するのが好きではありませんでした。
しかし、私はそれを試してみましたが、何かがうまくいきませんでした。
public function fetch($table, array $criteria = null)
{
// The query base
$query = "SELECT * FROM $table";
// Start checking
if ($criteria) {
$query .= ' WHERE ' . implode(' AND ', array_map(function($column) {
return "$column = ?";
}, array_keys($criteria)));
}
$check = $this->pdo->prepare($query) or die('An error has occurred with the following message:' . $query);
$check->execute(array_values($criteria));
$fetch = $check->fetch(PDO::FETCH_ASSOC);
return $fetch;
}
これは私の質問です。
基本的には$fetch
fetchメソッドを保持している変数を返します。
そして、while ループを使用してデータを取得したい場所では、それを使用します。
$r = new Database();
while ($row = $r->fetch("argonite_servers", array("server_map" => "Wilderness")))
{
echo $row['server_map'];
}
現在、エラーは発生していませんが、ブラウザは永遠にロードとロードを繰り返しており、最終的にはメモリ不足のためにスタックします.
それは、ループが停止することなく実行され、実行されているためです。なぜこれを行うのですか?この動的クエリを機能させるにはどうすればよいですか?
編集:
$r = new Database();
$q = $r->fetch("argonite_servers", array("server_map" => "Wilderness"));
while ($row = $q->fetch(PDO::FETCH_ASSOC))
{
echo $row['server_map'];
}