PHP からの通知によると、少なくとも PHP 5.5/6.0 までは mysql_* 拡張を公式に非推奨にすることはないため、これらの関数が完全になくなるか E_DEPRECATED エラーが発生し始める前に、スクリプトを書き直す時間があります。http://news.php.net/php.internals/53799
したがって、新しいスクリプトには PDO または mysqli を使用します。
PDOと接続
<?php
try{
$con = new PDO('mysql:host=127.0.0.1;dbname=test','root','password');
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
}catch (Exception $e){
die('Cannot connect to database. Details:'.$e->getMessage());
}
?>
現在、上記のコードが構成ファイルにある場合は、接続オブジェクトを使用include('config.php')
して
含めることができます。$con
グローバルスコープではないため$con
、コンストラクトを介してクラスに渡す必要があります。
<?php
include('config.php');
class yourclass{
function __construct(PDO $con){
$this->db = $con;
}
function someMethod($valueA,$valueB){
$sql = "INSERT
INTO TABLE
(
colA,
colB
)VALUES(
:colA,
:colB
)";
$query = $this->db->prepare($sql);
$query->bindParam(":colA", $valueA);
$query->bindParam(":colB", $valueB);
$query->execute();
}
}
$aClass = new yourclass($con);
$aClass->someMethod('someValueforA','someValueforB');
?>
それが役に立てば幸い。