私は主に自己ティーチにテストクラスに取り組んでいます。以下は、クラスである:OOP PHPファーストクラスMySQLデータベース接続
class Connection
{
public $con;
public $dbSelected;
public $activeConnection;
public $dataBaseName;
function __contruct($dbUserName, $dbPassword, $server = "localhost")
{
$this->con = mysql_connect($server,$dbUserName,$dbPassword);
if(!$this->$con)
{
$this->activeConnection = false;
}
else
{
$this->activeConnection = true;
}
}
public function dbConnect($dbName, $identifyer = null)
{
if ($identifyer === null)
{
$identifyer = $this->con;
}
$this->dbSelected = mysql_select_db($dbName, $identifyer);
$this->dataBaseName = $dbName;
if($this->dbSelected != true)
{
$this->connectionErrorReport(__LINE__);
}
}
public function cleanData(array $submission)
{
unset($submission["throughTheCleaners"]);
foreach($submission as $key => $value)
{
if(is_array($value))
{
$data[$key] = $this->cleanData($value);
}
else
{
$data[$key] = mysql_real_escape_string($value);
}
}
$data["throughTheCleaners"] = true;
return $data;
}
public function query($query, $dataSent)
{
if($dataSent["throughTheCleaners"] != true)
{
die("you must clean the data".__LINE__);
}
if($this->activeConnection == true && $this->dbSelected == true)
{
$result = mysql_query($query) or queryErrorReport($query, __LINE__);
$i = 0;
while($row = mysql_fetch_array($result))
{
foreach($row as $key => $value)
{
$data[$i][$key] = $value;
$i++;
}
}
return $data;
}
else
{
$this->$connectionErrorReport(__LINE__);
}
}
public function connectionErrorReport($line = __LINE__)
{
$error = "There has been a connection error on line ".$line."</br>";
if($this->activeConnection == false)
{
$error.= "Active Connection Error <br/>";
}
if($this->dbSelected == false)
{
$error.= "Data Base Selection Error <br/>";
}
die($error.mysql_error());
}
public function queryErrorReport($query, $line = __LINE__)
{
die("There was a query error on ".$line."<br />$query<br/>".mysql_error());
}
function __destruct() {
mysql_close($this->con);
}
}
私はできない、それはコンストラクタの呼び出し時に$con
変数に保存されているMySQLデータベースリソース教材をピックアップし、他の機能でそれを使用することはありませんなぜ私のフィギュアうちの生活のために。
は、最終的に別のクラス内の文字列が、私は現在、接続クラスの秋を取得しています唯一のエラーの暗号化機能があるでしょう。
ので、エラーを投げページは次のようになります。
include 'connection.php';
include 'loginClass.php';
$longinConnection = new Connection('***USERNAMEHERE***','***PASSWORD***');
$longinConnection->dbConnect("***DBTOCONNECTTO***");
echo Authoriz::encryptPassword("***USERPASSWORD***",$longinConnection);
このページはencryptPassword
機能をテストしますが、私もConnection
クラスは、動作させることはできません。それがスローエラーは以下の通りです:
警告:mysql_select_db()パラメータ2は、リソース、空行31 アクティブな接続エラー データの接続エラーが発生しましたライン27 の[PATH]で与えられることを期待しますベースの選択エラー
警告:にmysql_close()は、パラメータ1が103
$con
変数が何らかの理由でいずれかのために設定されていないように私には思えるリソース、空行の[PATH]で与えられることを期待します洞察力私が間違っているのものにいただければ幸いです。
を初期化していないので、あなたは
__construct
をスペルミス。プロシージャのmysql_ * APIは10年以上前です。あなたはそれで新しいコードを書くべきではありません。恥ずかしいが、私はそれを逃した信じていないことができ、私はしばらくの間、この見つめてきたあなたに感謝どのように –