|
|
@@ -10,7 +10,7 @@
|
|
|
* @createtime 2018/03/01
|
|
|
* @author 空竹
|
|
|
* @copyright 芝麻开发 (http://www.zhimawork.com)
|
|
|
- *
|
|
|
+ *
|
|
|
* 该类的使用方法简介:
|
|
|
*
|
|
|
* ------------SQL查询---------
|
|
|
@@ -20,7 +20,7 @@
|
|
|
* $sql = "select * from shop where shop_name = $name ";
|
|
|
* 执行查询:
|
|
|
* $mypdo->sqlQuery($sql);
|
|
|
- *
|
|
|
+ *
|
|
|
* ------------SQL写入---------
|
|
|
* 示例:
|
|
|
* $param = array(
|
|
|
@@ -49,7 +49,7 @@
|
|
|
*/
|
|
|
|
|
|
class MyPdo {
|
|
|
-
|
|
|
+
|
|
|
public $pdo = null;
|
|
|
public $hostname = '';
|
|
|
public $username = '';
|
|
|
@@ -58,28 +58,25 @@ class MyPdo {
|
|
|
public $debug = false;
|
|
|
public $log = null;
|
|
|
public $logSQL = false;
|
|
|
-
|
|
|
+
|
|
|
public function __construct(){
|
|
|
global $mylog;
|
|
|
$this->log = $mylog;
|
|
|
-// $this->dbconnect();
|
|
|
}
|
|
|
public function dbconnect($hostname, $username, $password, $database, $prefix) {
|
|
|
$dsn = 'mysql:dbname='.$database.';host='.$hostname.';port=3306';
|
|
|
try {
|
|
|
- $mypdo = new PDO($dsn, $username, $password);
|
|
|
+ $mypdo = new PDO($dsn, $username, $password);
|
|
|
$mypdo -> query('set names utf8;');
|
|
|
$mypdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
-
|
|
|
$this->pdo = $mypdo;
|
|
|
$this->prefix = $prefix;
|
|
|
-// var_dump($this);
|
|
|
return $this;
|
|
|
} catch(PDOException $e) {
|
|
|
if($this->debug) echo $e->getMessage();
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//数据库调试
|
|
|
public function debug($level = 0){
|
|
|
switch($level){
|
|
|
@@ -97,7 +94,7 @@ class MyPdo {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//查询
|
|
|
//本函数用于执行查询语句,增删改语句请使用其他专用函数
|
|
|
//@return 查询结果集array()。
|
|
|
@@ -108,7 +105,7 @@ class MyPdo {
|
|
|
//统计查询语句数量2016/6/16
|
|
|
$sqlactstr = strtolower(substr($sql, 0, 6));
|
|
|
if($sqlactstr == 'select') $CountSQLSelect++;
|
|
|
-
|
|
|
+
|
|
|
$rs = $this -> pdo -> query($sql);
|
|
|
$i = 0;
|
|
|
$data = array();
|
|
|
@@ -117,7 +114,7 @@ class MyPdo {
|
|
|
$i++;
|
|
|
}
|
|
|
$rs->closeCursor();
|
|
|
-
|
|
|
+
|
|
|
//2018/11/14记录SQL
|
|
|
if($this->logSQL) {
|
|
|
$this->log->debug($sql, 0);
|
|
|
@@ -134,57 +131,30 @@ class MyPdo {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /***
|
|
|
- * @param $sql
|
|
|
- * @return mixed
|
|
|
- * 执行sql
|
|
|
- */
|
|
|
- public function execSql($sql)
|
|
|
- {
|
|
|
- try {
|
|
|
- $mypdo = new MyPdo();//这里框架中的pdo不能用
|
|
|
-
|
|
|
- $mypdo->exec($sql);//2018/11/14记录SQL
|
|
|
- if($this->logSQL) {
|
|
|
- $this->log->debug($sql, 0);
|
|
|
- }
|
|
|
- return $this->getLastId();
|
|
|
- } catch(PDOException $e) {
|
|
|
- $msg = $e->getMessage().'【错误的SQL语句:'.$sql.'】';
|
|
|
- if($this->debug) {
|
|
|
- echo $msg;
|
|
|
- }else{
|
|
|
- $this->log->debug($msg, 0);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
//插入
|
|
|
- //@param $param可选值
|
|
|
+ //@param $param可选值
|
|
|
// string--表示字符串;
|
|
|
- // number--表示数字
|
|
|
+ // number--表示数字
|
|
|
// expression--表达式
|
|
|
//@return 成功执行返回刚插入的ID;
|
|
|
-
|
|
|
-
|
|
|
public function sqlinsert($table, $param){
|
|
|
|
|
|
if(!is_array($param)){
|
|
|
throw new Exception('sqlinsert参数错误', 905);
|
|
|
}
|
|
|
$sql = 'insert into '.$table.'(';
|
|
|
-
|
|
|
+
|
|
|
$keys = array_keys($param);
|
|
|
$keys_str = implode(',', $keys);
|
|
|
$sql .= $keys_str.') values(';
|
|
|
-
|
|
|
+
|
|
|
$params = array();
|
|
|
foreach($param as $val){
|
|
|
$params[] = $this->sql_check_input($val);
|
|
|
}
|
|
|
$params_str = implode(',', $params);
|
|
|
$sql .= $params_str.')';
|
|
|
-//var_dump($sql);
|
|
|
+
|
|
|
try {
|
|
|
$this->pdo->exec($sql);
|
|
|
|
|
|
@@ -192,6 +162,7 @@ class MyPdo {
|
|
|
if($this->logSQL) {
|
|
|
$this->log->debug($sql, 0);
|
|
|
}
|
|
|
+
|
|
|
return $this->getLastId();
|
|
|
} catch(PDOException $e) {
|
|
|
$msg = $e->getMessage().'【错误的SQL语句:'.$sql.'】';
|
|
|
@@ -220,7 +191,7 @@ class MyPdo {
|
|
|
$wheres_str = implode(' and ', $wheres);
|
|
|
|
|
|
$sql .= $wheres_str;
|
|
|
-
|
|
|
+
|
|
|
try {
|
|
|
$num = $this->pdo->exec($sql);
|
|
|
|
|
|
@@ -264,7 +235,7 @@ class MyPdo {
|
|
|
$wheres_str = implode(' and ', $wheres);
|
|
|
|
|
|
$sql .= ' where '.$wheres_str;
|
|
|
-
|
|
|
+
|
|
|
|
|
|
try {
|
|
|
$num = $this->pdo->exec($sql);
|
|
|
@@ -291,7 +262,7 @@ class MyPdo {
|
|
|
public function sql_check_input($arr_val)
|
|
|
{
|
|
|
$value = $arr_val[1];
|
|
|
-
|
|
|
+
|
|
|
if (get_magic_quotes_gpc())
|
|
|
{
|
|
|
$value = stripslashes($value);
|
|
|
@@ -319,7 +290,7 @@ class MyPdo {
|
|
|
|
|
|
/**
|
|
|
* sql_escape_mimic 用于在无mysql连接情况下替代mysql_real_escape_string的作用(防止SQL注入)
|
|
|
- *
|
|
|
+ *
|
|
|
* @param mixed $str
|
|
|
* @return
|
|
|
*/
|