PHPのDB接続の自作関数メモ

ブログ | 2010/11/28 20:03
// !define ---------------------------------------------->
define('DBSV','localhost'); //localhostとかipとか
define('DBUSER','root'); //rootとかユーザー名とか
define('DBPASS','xxxxxxxxxxxx');

define('DBNAME','dbmane');
define('PREFIX','dev_'); //tableにprefixをつけてるなら

// !db ---------------------------------------------->
$dbconn = false;

function db($sql,$ope='select',$dbname=DBNAME){
 global $dbconn;
 $sql = strtr($sql,array('@@'=>PREFIX,'@'=>'@'));
 if(empty($dbconn)) $dbconn = mysql_connect(DBSV,DBUSER,DBPASS);
 mysql_select_db($dbname,$dbconn);
 $res = mysql_query($sql,$dbconn) or die(mysql_error());
 switch($ope){
   case 'insert':
     $res = mysql_insert_id($dbconn);
     break;
   case 'update':
     $res = mysql_affected_rows($dbconn);
     break;
 }
 return $res;
}

function m($str){
 global $dbconn;
 if(empty($dbconn)) $dbconn = mysql_connect(DBSV,DBUSER,DBPASS);
 return mysql_real_escape_string(strtr($str,array('@'=>'@')));
}

// !debug ---------------------------------------------->
function d($v,$r = ''){
 $R = print_r($v,true);
 if(!empty($_SERVER['HTTP_USER_AGENT'])) $R = '<pre>'.$R.'</pre>';
 if($r) return $R;
 echo $R;
}
で、

$sql = "SELECT * FROM @@table WHERE field= ORDER BY field LIMIT 50;";
$res = db($sql);
while($row = mysql_fetch_assoc($res)){
 d($row);
}

$sql = "INSERT INTO @@table (field,field) VALUES (data,data);";
db($sql,'insert');
こんなかたちでつかう。

db関数の中で、いろいろやればいい。PEARとかPDOを使うとか、select系をレプリケーションしているサーバーに振るとか。
縮小 拡大

ログインしておくと、後で編集が可能です。

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close