/** * 获取写链接 * * @return \Pdo */ private function getWriteLink() { if (!self::$writeLink) { $dns = 'mysql:host=' . Config::get('database.write.host') . ';dbname=' . Config::get('database.write.database'); self::$writeLink = new Pdo($dns, Config::get('database.write.user'), Config::get('database.write.password'), array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'")); self::$writeLink->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return self::$writeLink; }
/** * 执行写入动作 * * @param [type] $sql [description] * @param array $params [description] * * @return [type] [description] */ public function execute($sql, array $params = array()) { //重置option属性 $this->resetOption(); //准备sql $sth = self::$writeLink->prepare($sql); //绑定参数 $id = 1; foreach ($params as $value) { $name = "hd{$id}"; ${$name} = $value; $sth->bindParam($id++, ${$name}, PDO::PARAM_STR); } try { //执行查询 $sth->execute(); //记录查询日志 if (DEBUG) { //记录查询日志 self::$queryLog[] = $sql; } //返回受影响行数 return self::$affectedRow = $sth->rowCount(); } catch (Exception $e) { if (DEBUG) { $error = $sth->errorInfo(); throw new Exception($sql . " ;BindParams:" . var_export($params, true) . implode(';', $error)); } else { return false; } } }