-1

次のような機能を見たときに、潜在的な雇用主はどう思いますか。

function updTable{$table, $primary, $id, $key, $value){
    $primary = mysql_real_escape_string($primary);
    $id = (int) $id;
    $key = mysql_real_escape_string($key);
    $value = mysql_real_escape_string($value);
    $table = mysql_real_escape_string($table);

    mysql_query("UPDATE `{$table}` SET
                `{$key}`=`{$value}` 
                WHERE `{$primary}` = {$id}");

}

これは悪い習慣ですか?私が読んで知っておくべき一般的なphp/mysql設計ガイドライン(構文ではない)に関する良い記事はありますか?

4

1 に答える 1

2

データベースの相互作用を処理する方法は、昨年のものです。 プリペアドステートメントは現在の標準であり、SQL関連の多くの攻撃を阻止します。

また、システムの設計によっては、このような機能は必要ありません。MVCパターンを使用している場合は、一般的なテーブルの更新だけでなく、特定の種類の更新を処理するメソッドをモデルに記述します。

この関数を見ると、そのテーブルの複数の列を更新したい場合はどうなりますか?たとえば、3つの列を更新する場合、データベースを1回ではなく、3回呼び出す必要があります。

非常に一般的なデータベースレイヤーになり得るものが必要な場合は、Doctrineを参照するか、それに非常に類似したものを作成してください。

于 2012-06-14T17:22:34.210 に答える