私はまだ購入した本からほとんどを学んでいますが、今年はPHPでのプログラミングに関して購入したにもかかわらず、私の本は古くなっています。今私は、PHPのmysql_ *コマンドは廃止予定であり、より安全で安定したプリペアドステートメントとPDOに置き換えられるべきであることを知っています。だから私はそれに応じてすべての私のウェブを書き直して、おそらく私はあなたからのアドバイスが必要です。 (データベースに接続してDBを選択する)ここで(私はGoogleとマニュアルで自分で行うことができる残りの部分)。ここで私の古いスクリプトを書いて、私が何かを正しく行えば何かを逃していないかどうか聞いてみると、これは他の人のための良いマニュアル/答えかもしれないと思います。だから始めることができます。古いmysql-phpコードを廃止予定のmysql_ *関数で書き直すには?
$db = new dbConn('127.0.0.1', 'root', 'pass', 'people', 'animals');
このようにする必要があります:
$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');
右
だからconfigに、私はこのようなものがありますか?しかし、後でデータベースを選択する必要があるときは、dbname=people;
を付けないといいでしょうか?しかし、後でデータベースを選択する方法は?ここで
は私の唯一のスクリプトは、ほとんどのWebプロジェクトの基本的である書き換えることであり、私はそれを持って来ることを願っていますだけでなく、私にいくつかの理解どのように新しいPDOシステムが実際に動作する:だから
class dbConn
{
public function __construct($server, $user, $pass, $db_people, $db_animals)
{
if (!empty($server) && !empty($user) && !empty($pass) && !empty($db_people) && !empty($db_animals))
{
$this->server = $server;
$this->user = $user;
$this->pass = $pass;
$this->db_people = $db_people;
$this->db_animals = $db_animals;
$this->connect();
}
else
{
die("Set up connection to db");
}
}
public function connect()
{
$this->conn = mysql_connect($this->server, $this->user, $this->pass) or die ('cannot connect to MySQL');
}
public function selectDb($database)
{
switch($database)
{
case 'people':
mysql_select_db($this->db_people, $this->conn) or die ('cannot connect to database '.$this->db_people.'.');
mysql_query("SET NAMES 'utf8'");
break;
case 'animals':
mysql_select_db($this->db_animals, $this->conn) or die ('cannot connect to database '.$this->db_animals.'.');
mysql_query("SET NAMES 'utf8'");
}
}
public function __destruct()
{
if (!empty($this->conn))
{
mysql_close($this->conn);
}
}
}
私が知っていることから、 GoogleとWikiの - public function __construct
やpublic function __destruct()
のような機能はもはや必要ではないでしょうか? public function connect()
のような関数と同じことは残っているのはpublic function selectDb($database)
なので、データベースへの接続を完全に妨害することなくこれを正しく行う方法はわかりません。私のコード(ここでは言及しません)の残りの部分では、私はこのコードでデータベースを簡単に選ぶことができます:$this->db->selectDb("people");
しかし、準備されたステートメントでは、これが簡単な方法でも可能かどうかわかりません。私は、この周りのアドバイスが私と他のユーザーにこの新しいコードをよく理解させる助けになることを願っています。あなたが持っているかもしれないコードの他の部分は、このPDO Tutorial for MySQL Developersに含まれています。ありがとうございました。
**疲れた古い「mysql_ *」恐竜からあなた自身をアップグレードするための勇気を持っているための超二重特別特別アップアップ! – rdlowrey