konekto Inc with PHP , MySQL コネクト株式会社 技術情報コンテンツ


MySQL

IBM i で MySQL を使う

IBM i 固有の機能に依存しない、MySQL 本体部分のサポートにつきましては弊社でお受けできます。

IBM i 固有の機能に依存する部分については、弊社にお問い合わせいただいてもサポートいたしかねますので、
ご理解いただけますようよろしくお願いいたします。

注意事項

  • i5/OS, System iもしくはAS/400をご利用のかた
    • IBM iという語句を適宜お読み替え下さい。

その1 MySQL関数でデータを取得

MySQLでデータを取得する例です。testデータベース内にyourdataテーブルを作成したと仮定します。

  • MySQL 関数は古くからある関数で、廃止予定です。次の例に記載する MySQLi 関数を利用することをお勧めします。
/**
 * MySQLに接続します。
 * 引数の1番目はIPアドレスです。
 * 2番目と3番目はユーザーとパスワードです。IBM iのログインユーザーとは別管理です。
 */
$db_con = mysql_connect('127.0.0.1', 'YOURMYSQLID', 'YOURMYSQLPWD');
if(!$db_con){
    echo '接続エラー:', mysql_error();
    exit;
}
 
/**
 * データベースを選択
 * 引数の1番目は MySQL 内のデータベース名です。IBM iのRDBとは別管理です。
 */
if(!mysql_select_db('YOURDB', $db_con)){
    echo 'データベース選択エラー', mysql_error();
    mysql_close($db_con);
    exit;
}
 
/**
 * SQLを実行します。
 * yourdataテーブルに 得意先コード、得意先名、電話番号の3項目が存在する場合を想定します。
 */
$query = ' SELECT tokuisakiCode, tokuisakiMei, telephonNo '
       . ' FROM yourdata ';
 
$result = mysql_query($query, $db_con);
if(!$result){
    echo 'SQL実行エラー:', mysql_error();
    mysql_close($db_con);
    exit;
}
 
//結果取り出しと表示
echo '<table border=1>',
     '<tr><th>得意先CD</th><th>得意先名</th><th>電話番号</th></tr>';
 
$row = array();
 
while($row = mysql_fetch_row($result)) {
    echo '<tr>';
    foreach ($row as $col) {
        echo '<td>', $col, '</td>';
    }
    echo '</tr>';
}
echo '</table><BR>';
 
//MySQL接続を閉じます。
mysql_close($db_con);

その2 MySQLi関数でデータを取得

MYSQL 関数の代わりに MySQLi 関数でデータを取得する例です。

/**
 * MySQLに接続します。
 * 引数の1番目はIPアドレスです。
 * 2番目と3番目はユーザーとパスワードです。IBM iのログインユーザーとは別管理です。
 * 4番目は MySQL 内のデータベース名です。IBM iのRDBとは別管理です。
 */
$mysqli = new mysqli('127.0.0.1', 'YOURMYSQLID', 'YOURMYSQLPWD', 'YOURDB');
if($mysqli->connect_error){
    echo '接続エラー:', $mysqli->connect_error;
    exit;
}
 
/**
 * SQLを実行します。
 * yourdataテーブルに 得意先コード、得意先名、電話番号の3項目が存在する場合を想定します。
 */
$query = ' SELECT tokuisakiCode, tokuisakiMei, telephonNo '
       . ' FROM yourdata ';
 
$stmt = $mysqli->prepare($query);
if(!$stmt){
    echo 'SQL準備エラー:', $mysqli->error;
    $mysqli->close();
    exit;
}
 
$result = $stmt->execute();
if(!$result){
    echo 'SQL実行エラー:', $mysqli->error;
    $mysqli->close();
    exit;
}
 
//結果取り出しと表示
echo '<table border=1>',
'<tr><th>得意先CD</th><th>得意先名</th><th>電話番号</th></tr>';
 
$stmt->bind_result($rs_cd, $rs_name, $rs_tel);
 
while($stmt->fetch()) {
    echo '<tr>',
         '<td>', $rs_cd,   '</td>',
         '<td>', $rs_name, '</td>',
         '<td>', $rs_tel,  '</td>',
         '</tr>';
}
echo '</table><BR>';
 
//MySQLi接続を閉じます。
$mysqli->close();

最終更新のRSS