PHPでINSERT文を自動生成する関数を作ってみました。

naohiro19
記事: 256
登録日時: 13年前
住所: 愛知県

PHPでINSERT文を自動生成する関数を作ってみました。

投稿記事 by naohiro19 » 6年前

ソースを載せておきます。

CODE:

 $value) {
            $sql .= sprintf('`%s` = ?, ', $column);
        }
        $sql = preg_replace('/,\s$/','', $sql);
    }
    if (!empty($onDuplicateKeyUpdate)) {
        $sql .= 'ON DUPLICATE KEY UPDATE ';
        foreach ($onDuplicateKeyUpdate as $key => $value) {
            $sql .= sprintf('`%s` = %s, ', $key);
        }
        $sql = preg_replace('/,\s$/','', $sql);
    }
    return $sql;
}
31行目、39行目、46行目は、カンマと半角スペースが最後の文字として追加されてしまうのでそのための文字を整形しています。

CODE:

I 'テスト',
    'email' => 'naolin_17_1986@yahoo.co.jp',
    'url' => 'http://www.yahoo.co.jp',
    'password' => '1234',
    'main' => '今日もがんばろう',
    'time' => 'CURRENT_TIMESTAMP()',
    'ip' => $_SERVER['REMOTE_ADDR']
];
$sql = insertSql('users', $parameter);

echo  $sql;
実行結果:

CODE:

INSERT INTO users SET `name` = ?, `email` = ?, `url` = ?, `password` = ?, `main` = ?, `time` = ?, `ip` = ?
insertSqlで返される文字は PDO::prepareメソッドを呼び出すのに適しています。
最後に編集したユーザー naohiro19 on 2017年11月12日(日) 20:29 [ 編集 1 回目 ]

コメントはまだありません。