クラス内からMySQLデータベースへのクエリを実行しようとしていますが、何らかの理由で機能しません。関数とリンクしている別のファイルにクラスがありrequire_once()
ます。
メインの.phpファイルは次のようになります。
<?php
require_once("connect.php");
require_once("theClass.php");
$a = new theClass;
$a->runQuery();
}
connect.php:
<?php
//connect to mySQL database
$mysqli = new mysqli("host", "user", "password", "db");
if ($mysqli->connect_errno)
{
echo "<br><h1>Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error . "</h1><br>";
}
theClass.php:
<?php
require_once('connect.php');
class theClass
{
//class variables and other functions here
function runQuery()
{
$query = "SELECT col_1 FROM db.table";
$stmt = $mysqli->prepare($query);
stmt->execute();
$stmt->bind_result($r);
while($stmt->fetch())
{
echo $r . "<br>";
}
}
};
クラスをメインの.phpファイルにコピーしようとしましたが、それでも機能しません。ただし、外部の.phpファイルとメインの.phpファイル内でまったく同じコード(クエリ、準備、実行、bind_result、およびフェッチ部分)を使用しており、どちらの場合も機能します。これにより、クラス内からクエリを実行できないか、別の方法で実行できると思います。誰かが私を正しい方向に向けることができますか?
ありがとう