アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpでmysqli構文が上手く動きません

質問します、よろしくお願いします。
現在 winVista、Xampp( apache、 php5、 mysql)にてプログラムの勉強をローカルで行っています。
ですが、書籍に載っていた以下のコードを実行してもエラーがでてうまく動きません。
幾ら調べてもわからず困っております、なにが原因でしょうか?ご教授をお願いいたします。

<?php
/*************************************************
* データベース操作
*
*/

require_once 'MDB2.php';

$sv = "localhost";
$dbname = "login_apri";
$user = "root";
$pass = "123456789";


$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";



//----------------------------------------------------
// データベース接続
//----------------------------------------------------
function db_connect($dsn){
$conn =& MDB2::connect($dsn);

// 接続に失敗したらメッセージを表示して終了します。
if (MDB2::isError($conn)){
die($conn->getMessage());
}
return $conn;
}


//----------------------------------------------------
// 検索結果を多次元配列で受け取る
//----------------------------------------------------
function select_arrays($conn, $sql){
$result = execute_sql($conn, $sql);
// レコードの取得
$i=0;
$data = array();
while ($rec = $result->fetchRow(DB_FETCHMODE_ASSOC)) {
foreach( $rec as $key => $value){
$value = sjis2euc_for_Winodows($value);
$data[$i][$key] = $value;
}
$i++;
}

// 検索件数
$count = $result->numRows();

// クエリー結果セットの開放
$result->free();
return array($data, $count);
}
// 検索件数
$count = $result->numRows();

// クエリー結果セットの開放
$result->free();
return array($data, $count);
}

/*************************************************

ブラウザに表示されるエラーは以下の通りです。

Fatal error: Call to undefined method MDB2_Error::fetchRow() in C:\xampp\htdocs\HP\login_main\php_libs\module\dbtest3.php on line 32

32行目は
while ($rec = $result->fetchRow(DB_FETCHMODE_ASSOC)) {

どなたかご回答をなにとぞ宜しくお願いします。

A 回答 (2件)

$dsnに指定している変数が定義されていないからではないでしょうか。


$dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName";
の部分を下のように変更してみてください。
$dsn = "MDB2//$user:$pass@$sv/$dbname";

これでもエラーが出るようであれば、先の人が言われているとおり、パスが通っていないのではないかと思います。
    • good
    • 0

こんにちは。



エラーの内容は「MDB2が定義されていない」というものです。
require_once 'MDB2.php';
で指定している、MDB2.phpへのパスは合っていますか?
もしくは、MDB2.phpを用意していますか?

私の環境とは異なるので、エラー表示のみでチェックしただけになりますが、一度確認してみてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!