内部でさまざまなタスクに使用される webapp を作成しています。定期的にデータを照会する必要がある MySQL データベースを使用します。
私は準備済みステートメントを認識しており、それらがベストプラクティスであることを認識していますが、多数のテーブルと結合を考えると、クエリを取得して実行し、結果を返す一般的な関数を作成するのが最も簡単であることがわかりました。
これがライブサイトにある場合、SQL インジェクションに対して脆弱になる可能性があることは理解していますが、この方法を使用することで本質的に悪いことはありますか? 私はphpとMySQLの間のインターフェースに比較的慣れていないので、webappでステートメントを繰り返し実行する方法のベストプラクティスを知りたいと思っています.
SELECT
これは、クエリに使用する関数の例です。
function getSQLResultsPDO($query){
$mydb = new PDO('mysql:host=localhost;dbname=mydatabase;charset=utf8', 'user', 'password');
$sth = $mydb->prepare($query);
if (!$sth) {
echo "\n<pre>PDO::errorInfo():</pre>\n";
echo "<pre>";
print_r($conn->errorInfo());
echo "</pre>";
}
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_CLASS);
if (empty($result)){
$result = false;
}
return $result;
}