0

SELECT、INSERT、DELETE、UPDATE などの単純な MySQL 操作用にいくつかの関数を作成することの欠点があるかどうか疑問に思います。

function sql_select($table, $values, $condition='WHERE true', $limit='') {
   global $sql_obj;

   $select_query = "SELECT {$values} FROM {$table} WHERE {$condition} {$limit}";
   $result = $sql_obj->run_query($select_query,"select");

   return $result;
}

sql_select('user_table', 'name, address, phone', 'user_id = ' .mysql_real_escape_string($_POST["user_id"]), 'LIMIT 0, 1' );

上記の機能を少しアップグレードして、より多くの機能を使用できるようにすることができます。メリットは分かったけどデメリットは?

4

3 に答える 3

3

特筆すべきデメリットはありません。実際、一般的な慣例として、一般的に使用されるコードを関数に分解する必要があります。ご指摘のとおり、これにより、これらの関数を使用するコード内のすべての場所を通過することなく、追加の拡張機能を追加できます。

唯一心配する必要があるのは (これはコードの重複に比べれば些細な問題です)、関数が十分に一般的であるか、または他の仮定と組み合わされているかどうかです。たとえば、関数はグローバル $sql_obj に依存しています。ユーザーはこれを知りません。ユーザーがこのグローバルを上書きした場合、または関数で使用したい別のオブジェクトを持っている場合はどうなりますか?

于 2012-12-20T02:20:34.543 に答える
0

私が考えることができる唯一の欠点は、複雑なクエリを実行するのが難しい/面倒だということです。

于 2012-12-20T02:21:29.400 に答える
0

多分あなたはを探していObject Relational Mapperますか?教義の枠組みはあなたにとって興味深いものかもしれません。

于 2012-12-20T02:22:54.970 に答える