为了账号安全,请及时绑定邮箱和手机立即绑定
  • PDO statement对象的方法
    查看全部
  • PDO对象方法
    查看全部
  • 这一节 蒙了
    查看全部
  • 请大家注意,需要面向编程的,建议直接看 PHP面向对象编程 https://www.imooc.com/learn/184 这个分类在中级,但是很详细
    查看全部
  • pdo连接数据库
    查看全部
    0 采集 收起 来源:PDO连接数据库

    2017-12-20

  • zhongdiao
    查看全部
  • POP3/SMTP 服务开启
    查看全部
  • //获得最后一次SQL语句 public static function getLastSql(){ $link=self::$link; if(!$link)return false; return self::$queryStr; } //获得最后一次插入语句产生的AUTO_INCREMENT public static function getLastInsertId(){ $link=self::$link; if(!$link)return false; //在每次在execute()中执行SQL语句成功后获得self::$lastInsertId return self::$lastInsertId; } //获取服务器版本 public static function getDbVerion(){ $link=self::$link; if(!$link)return false; //在构造函数中链接数据库成功时获得self::$dbVersion return self::$dbVersion; } //获得数据库中的所有表 public static function showTables(){ $tables=array(); if(self::query("SHOW TABLES")){ $result=self::getAll(); foreach($result as $key=>$val){ $tables[$key]=current($val); } } return $tables; }
    查看全部
  • //删除记录的操作 public static function delete($table,$where=null,$order=null,$limit=0){ $sql="DELETE FROM {$table} ".self::parseWhere($where).self::parseOrder($order).self::parseLimit($limit); return self::execute($sql); }
    查看全部
  • //更新记录 参数1为关联数组,键名为列名 public static function update($data,$table,$where=null,$order=null,$limit=0){ foreach($data as $key=>$val){ $sets.=$key."='".$val."',"; } //$sets最后会多一个逗号(上面连接字符串时定义所有的$val后面都添加了逗号).所有要去掉 $sets=rtrim($sets,','); $sql="UPDATE {$table} SET {$sets} ".self::parseWhere($where).self::parseOrder($order).self::parseLimit($limit); return self::execute($sql); }
    查看全部
  • //添加记录的操作 参数1为关联数组,键名为列名,键值为数据; 参数2为 string public static function add($data,$table){ //获取关联数组内的所有键名,存储在索引字符串并返回 $keys=array_keys($data); //给$keys所有值添加单引号 array_walk($keys,array('PdoMySQL','addSpecialChar')); $fieldsStr=join(',',$keys); $values="'".join("','",array_values($data))."'"; $sql="INSERT {$table}({$fieldsStr}) VALUES({$values})"; //执行插入并返回受影响行条数; return self::execute($sql); }
    查看全部
  • //对分组结果通过Having子句进行二次删选 //设置的Having条件必须为字符串且有值,否则返回空字符串 public static function parseHaving($having){ $havingStr=''; if(is_string($having)&&!empty($having)){ $havingStr.=' HAVING '.$having; } return $havingStr; } //解析Order by //设置的Order by条件必须为 数组 或 有字符的字符串,否则返回空字符串 public static function parseOrder($order){ $orderStr=''; if(is_array($order)){ //join()拼接数组成字符串 $orderStr.=' ORDER BY '.join(',',$order); }elseif(is_string($order)&&!empty($order)){ $orderStr.=' ORDER BY '.$order; } return $orderStr; } //解析限制显示条数limit //设置的limit条件必须为 数组 或 有字符的字符串,否则返回空字符串 public static function parseLimit($limit){ $limitStr=''; if(is_array($limit)){ if(count($limit)>1){ //从第$limit[0]条记录往下去$limit[1]条记录 //防止用户输入多于两个的数组值,所有不用join(),implode()等函数 $limitStr.=' LIMIT '.$limit[0].','.$limit[1]; }else{ $limitStr.=' LIMIT '.$limit[0]; //从第一条记录开始往下去$limit[0]条记录 } }elseif(is_string($limit)&&!empty($limit)){ $limitStr.=' LIMIT '.$limit; } return $limitStr; }
    查看全部
  • //执行普通查询 public static function find($tables,$where=null,$fields='*',$group=null,$having=null,$order=null,$limit=null){ $sql='SELECT '.self::parseFields($fields).' FROM '.$tables .self::parseWhere($where) .self::parseGroup($group) .self::parseHaving($having) .self::parseOrder($order) .self::parseLimit($limit); $dataAll=self::getAll($sql); //count(array,mode)返回数组中元素的数目。mode=0:返回第一维数组元素数目, mode=1:返回所有数组元素数目 return count($dataAll)==1?$dataAll[0]:$dataAll; } //解析Where条件 //设置的where条件必须为字符串且有值,否则返回空字符串 public static function parseWhere($where){ $whereStr=''; if(is_string($where)&&!empty($where)){ $whereStr=' WHERE '.$where; } return $whereStr; } //解析group by条件 //设置的group by条件必须为 数组 或 有字符的字符串,否则返回空字符串 public static function parseGroup($group){ $groupStr=''; if(is_array($group)){ //implode()拼接数组成字符串 $groupStr.=' GROUP BY '.implode(',',$group); }elseif(is_string($group)&&!empty($group)){ $groupStr.=' GROUP BY '.$group; } return $groupStr; }
    查看全部
  • //通过反引号引用字段 /*解释一下这里不用做处理的原因,就是说,如果用'`'引用起来的这种就如 select name ,esc from user where id=1;这里的esc是保留字会报错, select name ,`desc` from user where id=1;这样就可以执行,同理 select name,user.desc from user where id=1,也是同样可以执行的; 所以这里的判断就是判断这两种情况。*/ //测参数是否为'*' 或 是否已经拥有'.' 或 是否拥有反引号,如果是则不处理,如果没有则给参数添加单引号(参数为引用传递) public static function addSpecialChar(&$value){ if($value==='*'||strpos($value,'.')!==false||strpos($value,'`')!==false){ //不用做处理 }elseif(strpos($value,'`')===false){ //如果没有单引号,添加单引号 $value='`'.trim($value).'`'; } return $value; }
    查看全部
  • //根据主键查找记录 public static function findById($tabName,$priId,$fields='*'){ $sql='SELECT %s FROM %s WHERE id=%d'; return self::getRow(sprintf($sql,self::parseFields($fields),$tabName,$priId)); } //解析字段 public static function parseFields($fields){ if(is_array($fields)){ //为数组时 //array_walk()对数组中的每个元素应用用户自定义函数(或方法),第二个参数表示:调用的自定义方法为PdoMySQL::addSpecialChar() //PdoMySQL::addSpecialChar()给参数添加单引号(参数为引用传递) array_walk($fields,array('PdoMySQL','addSpecialChar')); $fieldsStr=implode(',',$fields); }elseif(is_string($fields)&&!empty($fields)){ if(strpos($fields,'`')===false){ //字符串中没有单引号 $fields=explode(',',$fields); array_walk($fields,array('PdoMySQL','addSpecialChar')); $fieldsStr=implode(',',$fields); }else{ $fieldsStr=$fields; } }else{ $fieldsStr='*'; } return $fieldsStr; }
    查看全部

举报

0/150
提交
取消
课程须知
1、掌握PHP的基础语法知识 2、掌握MySQL基本增删改查语句 3、对面向对象的基本概念有清晰的认识,熟悉PHP中类定义的基本语法
老师告诉你能学到什么?
1、掌握PDO的基本概念及安装和配置 2、掌握PDO处理数据的基本操作 3、理解PDO事务处理 4、掌握类的封装的方法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!