MySQL数据库操作类,支持严格模式的事物处理

来源:互联网 发布:淘宝的生意参谋怎么用 编辑:程序博客网 时间:2024/05/22 07:51

通过SQL文,操作数据库的类

class DataBase_Mysql {private $host ;private $user ;private $passwd ;private $dbname ;private $conn ;/*  * 构造函数,直接连接数据库 */public function __construct($hotst, $user, $passwd, $dbname){$this->host = $host;$this->user = $user;$this->passwd = $passwd;$this->dbname = $dbname;$this->conn = mysql_connect($this->host, $this->user, $this->passwd);if(!$this->conn){die ("数据库连接失败");}if(!mysql_select_db($this->dbname, $this->conn)){die ("目标数据库无法访问");}mysql_query("SET NAMES utf8");}/*  * 析构函数,关闭数据库 */public function __destruct(){@mysql_close($this->conn);}/* * 检索数据库,并将取得的记录全部放入数组 */public function getQuery2Array($sql){if(!$sql){ return false;}if(!$this->conn){return false;}$result = mysql_query($sql, $this->conn);if(!$result){return false;}else{while($row = mysql_fetch_array($result)){  $arr[]=$row;}return $arr;}}/* * 按照事物执行SQL *  * @para $sql 可执行SQL字符串或可执行SQL字符串数组 * @return true 执行成功; false 执行失败 */public function exeSQLs($sql){if(is_array($sql)){$sqls = $sql;}else{$sqls = array($sql);}// 以严格模式执行SQL文mysql_query("set sql_mode=\"STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\";");mysql_query("BEGIN");$result = true;// 循环执行SQLforeach( $sqls as $runsql){// 过滤空字符串if($runsql != null  && $runsql != ""){$result = $result && mysql_query($runsql);// 任意SQL出错退出if(!$result){break;}}}// 提交或回滚if($result){mysql_query("COMMIT");}else{mysql_query("ROLLBACK");  }mysql_query("END");return $result;}/* * 取得上一个SQL中自动增长新项目的最新值 * @return 自动增长新项目的最新值 */public function insert_id(){return mysql_insert_id();}}


0 0
原创粉丝点击