|
MDBパッケージを入手するには、WindowsでもUNIXでも、次のように打てばOKです。
pear install MDB2
pear install MDB2_driver_mysql
|
上記のように、各RDBMS別に"Driver"とゆーものを個別にインストールする必要があります。
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=Shift_JIS"></meta>
<title>PEAR MDB2 MySQL 検索サンプル</title>
<style type="text/css">
span.message {
color: #c00000;
}
</style>
</head>
<body>
<?php
require_once 'MDB2.php';
function executeQuery($shitenCode) {
$dsn = "mysql://urano:urano398@localhost/udb";
$con =& MDB2::factory($dsn);
if(MDB2::isError($con)){
print "Error!! " . $con->getMessage() . "<br/>\n";;
print 'Standard Code: ' . $con->getCode() . "<br/>\n";
// 以下の2つは接続に関する情報が表示されることがあるので注意。
// (本番環境では表示しない)
print 'UserInfo Message: ' . $con->getUserInfo() . "<br/>\n";
print 'DebugInfo Message: ' . $con->getDebugInfo() . "<br/>\n";
$rset = array();
return;
}
// 応答の日本語文字コードを指定するMySQL特有のTips
// シフトJISならsjis、EUC-JPならujisと指定します。
$con->query("SET NAMES sjis");
$sql = <<<SQL
SELECT SHITEN_CODE, SHITEN_NAME, AREA_CODE, ADDRESS, EMPLOYEE_NUM
FROM SHITEN
WHERE SHITEN_CODE = ?
ORDER BY SHITEN_CODE
SQL;
$st = $con->prepare($sql);
$result = $st->execute($shitenCode);
if($con->isError($result)){
die("Error!! " . $result->getMessage());
}
$rset = $result->fetchAll();
$st->free();
$con->disconnect();
return $rset;
}
function displayTable($rset){
print <<<HEADER
<style type="text/css">
table {
border: 2px solid #000000;
border-collapse: collapse;
}
table tr th {
border: 1px solid #000000; padding: 2px;
background-color: #cccccc;
}
table tr td {
border: 1px solid #000000; padding: 2px;
}
</style>
<table><tr>
<th>支店コード</th><th>支店名称</th><th>地域</th><th>所在地</th><th>従業員数</th>
</tr>
HEADER;
foreach($rset as $row){
print "<tr>";
foreach($row as $e){
print "<td>$e</td>";
}
print "</tr>\n";
}
print "</table>\n";
}
?>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
支店コード
<input type="text" name="shiten_code" maxlength="5" value="<?= $_POST['shiten_code'] ?>">
<input type="submit" value="OK!">
</form>
<?php
if(isset($_POST['shiten_code'])){
$shitenCode = htmlspecialchars($_POST['shiten_code']);
$rset = executeQuery($shitenCode);
if(empty($rset)){
print "<span class='message'>該当データがありませんでした。</span><br/>";
} else {
displayTable($rset);
}
}
?>
</body>
</html>
|
DBとMDB2の使い方はほぼ同じですが、幾つか微妙な違いがあります。
まず、DB::connect() に対応するのは MDB2::factory() です。
またSQLを簡単に発行するDB::Connectionのメソッド
getAll、getOne、getRow、getColは、それぞれMDB2では
queryAll、queryOne、queryRow、queryColと改名されています。
(first uploaded 2003/11/14 last updated 2007/07/21, URANO398)
|