プログラミングを始めたばかりのmimizuです。
現在、データベース(mysqli)を利用してサイトを制作しているのですが、データベースの操作でエラーが発生し原因がよくわかりません。
どうかご助力お願い致します。
<?php
/* 登録処理 regist.php */
$dbserver = "localhost";
$dbuser = "root";
$dbpass = "*******";//パスワードは合っています。
$dbname = "syu";
$error_ms = "エラーが発生しました。";
$mysqli = new mysqli($dbserver, $dbuser, $dbpass, $dbname);
if(mysqli_connect_errno()){exit ($error_ms);}
$mysqli->set_charset("utf8") or exit($error_ms);//文字エンコード指定
~省略~
//ここからデータベースへの登録処理
$stmt = $mysqli->prepare("INSERT INTO tempo VALUES('', ?, ?, ?, ?, ?, ?)");//ここが94行目
$stmt->bind_param("ssiiss",
$postval["mail"], $postval["pass"], $postval["gender"],
$postval["birthday"], $postval["mail_pass"], date("Y-m-d H:i:s"));
$stmt->execute();//プリペアドクエリを実行
$stmt->close();//閉じる
~省略~
?>
このファイルを実行すると、以下のエラーが表示されます。
Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\syu\script\regist.php on line 94
94行目にエラーがでているので、接続は正常に完了しているのでしょうか?
MySQLi自体が正常に動いていないと思い、phpinfoで調べたのですが、MySQLiの項目がしっかりと表示されていました。
ちなみに、データベース(syu)とテーブル(tempo)はphpMyAdminを利用して作っております。
作動環境はXAMPP1.7.2を利用しております。
Apache 2.2.12
MySQL 5.1.37
PHP 5.3.0
どうか、よろしくお願い致します。
追記
PHPのマニュアルで
;extension=php_mysqli.dll
を有効にしなければならないとあったのですが、/xampp/php/php.iniファイルには「;extension=php_mysqli.dll」の記述がありませんでした。これが原因なのでしょうか?
« 最終編集者 mimizu 日時 2010 年 1 月 11 日(月) 10:44. »