Continuous Diggin'

プログラミングと音楽のトピックを中心に書いてます

PHPでMySQLに接続するときのサンプルコード

PHPで開発しているときに、PDOを使って、MySQLに接続する場合に書く関数のテンプレを書きました。

例として、

article_tag
id
article_id
value
create_date

のテーブルにinsertする関数の例です。

なお、DB側のSQLはこのような感じ。

DROP TABLE IF EXISTS article_tag;

CREATE TABLE article_tag (
    id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
    article_id INTEGER NOT NULL,
    value VARCHAR(256) NOT NULL,
    create_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

データを挿入する関数を作ります。

<?php

require('config.php');

# config.phpをつくって、そこに各環境でのmysqlの情報を書く。
# define ('DB_NAME', 'mysql:dbname=[DBNAME];host=localhost');
# define ('DB_USER', '[USERNAME]');
# define ('DB_PASSWORD', '[PASSWORD]');





function insertArticleTag($article_id, $value){
    try {
        $dbh = new PDO(DB_NAME, DB_USER, DB_PASSWORD);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $stmt = $dbh->prepare('INSERT INTO article_tag (id, article_id, value, create_date) VALUES (NULL, :article_id, :value, NULL)');
        $stmt->bindValue(':value', $value);
        $stmt->bindValue(':article_id', $article_id);
        $stmt->execute();
        return true;
    }
    catch (Exception $e) {
        echo $e->getMessage();
        return false;
    }
}

セキュリティのことがわからない人でも、とりあえず、prepare() してから、 execute() をするように心がけたほうがいいです。