mysql_* を mysqli に変換していますが、以下の問題が発生します。
php クラス (Functions.php):
class Functions{
public static function filter($data){
$data = trim(htmlentities(strip_tags($data)));
if(get_magic_quotes_gpc())
$data = stripslashes($data);
$data = $mysqli->real_escape_string($data);
return $data;
}
}
DB 接続 (dbconnect.php):
$dbhost = 'localhost';
$dbuser = 'xxxxxx';
$dbpass = 'xxxxxx';
$dbname = 'xxxxxx';
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
上記のファイルを header.php のように含めます
include('inc/dbconnect.php');
include('inc/Functions.php');
次のようなクラス関数をページに呼び出してもらいました。
$params = Functions::filter($_GET['param']);
ページをロードすると、次のエラーが発生しました。
致命的なエラー: C:\xampp\htdocs\site\inc\functions.php 行 XX の非オブジェクトでメンバ関数 real_escape_string() を呼び出します
dbconnect.php で mysqli 用のオブジェクトを既に作成していませんか? なぜこのエラーが表示されるのですか? これは、Functions.php 内の関連するすべての mysqli で発生します。
アドバイスください、どうもありがとう。