質問:Fat Free Frameworkでより複雑なSQLクエリを実行するためのより簡単で安全な方法はありますか?私が持っている解決策はPDOを使用することですが、例外を簡単にスローできないため、面倒で醜いです。
バックグラウンド:
Fat Freeは、データベースを「安全に」操作するためのAXONクラスを提供しますが、AXONが処理できるより複雑なクエリを実行したいと思います。
DBクラスは公開されていますが、安全性が保証されていないクエリを作成するには、「mysql_real_escape_string()」を使用する必要があります。したがって、ソリューションは公開されたPDOを使用しているように見えます。
デフォルトのエラー処理として公開されたPDOは、苦痛であり、醜いコードになります。
$pdo = F3::get('DB')->pdo;
$sql = 'INSERT INTO config(config_name, config_value, comments) VALUES( :config_name , :config_value , :config_comments)
ON DUPLICATE KEY UPDATE config_value= :config_value2';
if (!$stmt = $pdo->prepare($sql)) {
$errorInfo = $pdo->errorInfo();
trigger_error('PDO Error: ' . $pdo->errorCode(). ' ' . $errorInfo[2]);
exit();
}
$stmt->bindValue(':config_name', $field, PDO::PARAM_STR);
$stmt->bindValue(':config_value', $value, PDO::PARAM_STR);
$stmt->bindValue(':config_comments', $comments, PDO::PARAM_STR);
$stmt->bindValue(':config_value2', $value, PDO::PARAM_STR);
if ($stmt->execute() === false) {
$errorInfo = $stmt->errorInfo();
trigger_error('PDO Error: ' . $stmt->errorCode(). ' ' . $errorInfo[2]);
exit();
}
それで、私が見逃しているより良いものはありますか?または、AXONはより複雑なクエリを処理できますか?