MySQL

最もスタンダードなMySQLの接続関数、記述が簡単だが、エスケープやトランザクション処理をうまく制御できないため、自身で対応する必要がある。

サンプル

<?php
    // 接続
    $link = mysql_connect('localhost', 'root', '');
    if (!$link) {
        die('接続できませんでした: ' . mysql_error());
    }
    echo '接続に成功しました';
    echo "<br />";
    var_dump($link);
 
    // データベース選択
    $db_selected = mysql_select_db('testdb', $link);
    if (!$db_selected) {
        die ('Can\'t use testdb : ' . mysql_error());
    }
 
    // SQL取得
    $sql = "
        select
            col1
          , col2
        from
            testtable1
        order by
            col1
          , col2
    ";
    // SQL実行
    $result = mysql_query($sql);
    if (!$result) {
        die('Invalid query: ' . mysql_error());
    }
    echo "<br />";
    var_dump($result);
 
    // 件数チェック
    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }
 
    echo "<br />";
    echo "<br />";
    // 選択結果取得
    while ($row = mysql_fetch_assoc($result)) {
        echo "<hr />";
        var_dump($row);
    }
 
    // 更新
    $data = "test";
 
    $sql = "
        insert into testtable1(
            col2
        ) values(
            '" . mysql_real_escape_string($data) . "'
        )
    ";
    // SQL実行
    $result = mysql_query($sql);
    if (!$result) {
        die('Invalid query: ' . mysql_error());
    }
    echo "<br />";
 
    // 更新件数表示
    printf("Records execute: %d\n", mysql_affected_rows());
 
    // 切断
    mysql_close($link);
?>
 
文字コードの制御を行う場合などはSQLで使用するSQLを制限する必要があります。




最終更新:2011年04月06日 14:52