データベースに接続するクラスを作成する方法を見てみましょう。
コード 1 mysql.class.php
class SqlTool {
private $conn;
private $host="127.0.0.1";
private $user="root";
private $password="5200";
private $db="test";
function SqlTool(){
$this->conn= mysql_connect($this->host,$this->user,$this->password);
if(!$this->conn){
die("データベースへの接続に失敗しました" .mysql_error ());
}
mysql_select_db($this->db,$this->conn);
mysql_query("set names utf8");
}
/ /Complete select
functionexecute_dql($sql){
$res=mysql_query($sql);
return $res;
}
//Update を完了
関数execute_dml($sql){
$b=mysql_query($sql,$this->conn);
if(!$b){
return 0; // 失敗
}else {
if(mysql_affected_rows($this->conn)>0){
return 1;//Chen Gong を示します
}else {
return 2;//行数は影響を受けません
}
}
}
}
?>
コード 2 mysql.php
header("content-type:text/html; charset=utf- 8");
require_once "SqlTool.class.php";
$sql="select * from user1";
$sqlTool=new SqlTool();
/ /関数 SqlTooL を呼び出さずにオブジェクトを作成してデータベースに接続する方法
$res=$sqlTool->execute_dql($sql);//直接実行できますかデータベースを操作するには、execute_dql を呼び出しますか?
while ($row=mysql_fetch_row($res)){
foreach($row as $key=>$val){
echo "--$val";
}
echo "
";
}
?>コード 2 で、オブジェクトの作成時に問題が見つかりましたが、その方法関数 SqlTooL を呼び出さずにオブジェクトを作成してデータベースに接続する
------解決策------ - -
SqlTool クラスの SqlTool メソッドはそのコンストラクターです。
マニュアルからの抜粋:
下位互換性のために、PHP 5 がクラス内で __construct() 関数を見つけられない場合、古いスタイルのコンストラクターを見つけようとします。クラスと同じ名前。
このクラスは良くなく、時代遅れであることがわかります
http://php.net/manual/zh/ language.oop5.decon.php