phpとmysqlの簡単なクラスサンプルコード
1.クラスSimpleDao.php
<?php
class SimpleDao {
private $_table = null;
private static $_con = null;
public function SimpleDao() {
if ($this->_con == null) {
$this->_con = @mysql_connect("localhost", "root", "arkgame.com");
if ($this->_con == FALSE) {
echo("DBサーバーへの接続失敗した");
$this->_con = null;
return;
}
//$firephp->log("new DAO object");
@mysql_select_db("swan", $this->_con);
}
}
public function table($tablename) {
$this->_table = $tablename;
return $this;
}
//DB検索操作
public function query($sql) {
$result = @mysql_query($sql);
$ret = [];
if ($result) {
while ($row = mysql_fetch_array($result)) {
$ret[] = $row;
}
}
return $ret;
}
public function get($where = null) {
$sql = "select * from ".$this->_table;
//$sql = $sql.$this->_getWhereString($where);
//echo "[get]".$sql."<br>";
return $this->query($sql);
}
//DB挿入操作
public function insert($params) {
if ($params == null || !is_array($params)) {
return -1;
}
$keys = $this->_getParamKeyString($params);
$vals = $this->_getParamValString($params);
$sql = "insert into ".$this->_table."(".$keys.") values(".$vals.")";
//echo "[insert]".$sql."<br>";
$result = @mysql_query($sql);
if (! $result) {
return -1;
}
return @mysql_insert_id();
}
//DB更新操作
public function update($params, $where = null) {
if ($params == null || !is_array($params)) {
return -1;
}
$upvals = $this->_getUpdateString($params);
$wheres = $this->_getWhereString($where);
$sql = "update ".$this->_table." set ".$upvals." ".$wheres;
//echo "[update]".$sql."<br>";
$result = @mysql_query($sql);
if (! $result) {
return -1;
}
return @mysql_affected_rows();
}
//DB削除操作
public function delete($where) {
$wheres = $this->_getWhereString($where);
$sql = "delete from ".$this->_table.$wheres;
//echo "[delete]".$sql."<br>";
$result = @mysql_query($sql);
if (! $result) {
return -1;
}
return @mysql_affected_rows();
}
protected function _getParamKeyString($params) {
$keys = array_keys($params);
return implode(",", $keys);
}
protected function _getParamValString($params) {
$vals = array_values($params);
return "'".implode("','", $vals)."'";
}
private function _getUpdateString($params) {
//echo "_getUpdateString";
$sql = "";
if (is_array($params)) {
$sql = $this->_getKeyValString($params, ",");
}
return $sql;
}
private function _getWhereString($params) {
//echo "_getWhereString";
$sql = "";
if (is_array($params)) {
$sql = " where ";
$where = $this->_getKeyValString($params, " and ");
$sql = $sql.$where;
}
return $sql;
}
private function _getKeyValString($params, $split) {
$str = "";
if (is_array($params)) {
$paramArr = array();
foreach($params as $key=>$val) {
$valstr = $val;
if (is_string($val)) {
$valstr = "'".$val."'";
}
$paramArr[] = $key."=".$valstr;
}
$str = $str.implode($split, $paramArr);
}
return $str;
}
public function release() {
@mysql_close();
}
}
function T($table) {
return (new SimpleDao())->table($table);
}
?>
2.SimpleDaoクラスを引用する
<?php
include "test/simpledao.php";
$dao = T("sw_post");
$result = $dao->get();//get all posts
$dao->release();
echo json_encode($result);
?>
<?php
include "test/simpledao.php";
$dao = T("sw_post");
// update title where id=1
$cnt = $dao->update(array("title"=>"こんにちは"), array("id"=>1));
$dao->release();
echo json_encode(array("count"=>$cnt));
?>
<?php
include "test/simpledao.php";
$dao = T("sw_tag");
// insert new record
$cnt = $dao->insert(array("postid"=>4, "name"=>"TAGテスト"));
$dao->release();
echo json_encode(array("count"=>$cnt));
?>
<?php
include "test/simpledao.php";
$dao = T("sw_tag");
// delete from table where name='TAGテスト'
$cnt = $dao->delete(array("name"=>"TAGテスト"));
$dao->release();
echo json_encode(array("count"=>$cnt));
?>