ってなわけですが、先日やっていたところがどうしても解決していないので、少しマシになったので今再チャレンジ中ですが、ダメですw
- 作って覚えるPHP+MySQLアプリケーション―ブログ、ショッピングサイトからマッシュアップまで/藤本 壱
- ¥2,310
- Amazon.co.jp
でSQLの基本を読み終え、phpMyAdminでの文字化けも解消されたんですが、次PHPでデータベースにアクセスするというところで、またしても躓いていますww
コードはですね。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>データベースへの例</title>
</head>
<body>
<form method="post" action="dbtest.php">
<table>
<tr><td>都道府県</td><td><input type="text" name="pref" value="<?php print(htmlspecialchars($_POST['pref'])); ?>" /></td></tr>
<tr><td>性別</td><td><input type="text" name="sex" value="<?php print(htmlspecialchars($_POST['sex'])); ?>"/></td></tr>
</table>
<input type="submit" value="送信" />
</form>
<?php
// MDB2クラスの組み込み
$pear_path = 'c:/xampp/php/PEAR';
set_include_path(get_include_path() . PATH_SEPARATOR . $pear_path);
require_once('MDB2.php');
// DSNの設定
$dsn = array(
'phptype' => 'mysql',
'username' => 'root',
'password' => '*********',
'hostspec' => 'localhost',
'database' => 'testdb',
);
// オプションの設定
$options = array(
'portability' => MDB2_PORTABILITY_ALL,
);
// 接続
$mdb2 =& MDB2::connect($dsn, $options);
if (PEAR::isError($mdb2)) {
exit('データベースへの接続に失敗しました');
}
// 初期化
$sql = 'set names utf8';
$res =& $mdb2->query($sql);
$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);
// プリペアド・ステートメントの準備
$sql = 'select * from address where pref = ? and sex = ?';
$type = array('text', 'text');
$sth = $mdb2->prepare($sql, $type);
// プリペアド・ステートメントの実行
$data = array($_POST['pref'], $_POST['sex']);
$res = $sth->execute($data);
if (PEAR::isError($res)) {
exit('selectに失敗しました');
}
// レコードの内容を表示
print("<table border=\"1\">\n");
print("<tr>");
print("<th>名前</th><th>性別</th><th>都道府県</th><th>住所</th><th>電話番号</th>");
print("</tr>");
while ($data = $res->fetchRow()) {
print("<tr>\n");
print("<td>" . $data['name'] . "</td>");
print("<td>" . $data['sex'] . "</td>");
print("<td>" . $data['pref'] . "</td>");
print("<td>" . $data['address'] . "</td>");
print("<td>" . $data['phone'] . "</td>");
print("</tr>\n");
}
print("</table>\n");
// 接続を切る
$mdb2->disconnect();
?>
</body>
</html>
このコードをブラウザで開くと
「データベースへの接続に失敗しました 」
ヽ(´Д`;)ノアゥア...