透明 发表于 2015-2-3 23:33:50

PHP网页设计一个PHP MySQL操作类...

终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。    <?php /** * MySQL 数据库操作东西
类, 便利
数据库操作. * 示例见底部正文
. * @author: http://www.ideawu.net/blog/ */ class Mysql{ var $conn; var $query_list = array(); public $query_count = 0; public function __construct($c){ if(!isset($c['port'])){ $c['port'] = '3306'; } $server = $c['host'] . ':' . $c['port']; $this->conn = mysql_connect($server, $c['username'], $c['password'], true) or die('connect db error'); mysql_select_db($c['dbname'], $this->conn) or die('select db error'); if($c['charset']){ mysql_query("set names " . $c['charset'], $this->conn); } } /** * 履行
mysql_query 并前往
其了局
. */ public function query($sql){ $stime = microtime(true); $result = mysql_query($sql, $this->conn); $this->query_count ++; if($result === false){ throw new Exception(mysql_error($this->conn)." in SQL: $sql"); } $etime = microtime(true); $time = number_format(($etime - $stime) * 1000, 2); $this->query_list[] = $time . ' ' . $sql; return $result; } /** * 履行
SQL 语句, 前往
了局
的第一笔记
录(是一个对象). */ public function get($sql){ $result = $this->query($sql); if($row = mysql_fetch_object($result)){ return $row; }else{ return null; } } /** * 前往
查询了局
集, 以 key 为键组织成联系关系
数组, 每个
元素是一个对象. * 假如
key 为空, 则将了局
组织成通俗
的数组. */ public function find($sql, $key=null){ $data = array(); $result = $this->query($sql); while($row = mysql_fetch_object($result)){ if(!empty($key)){ $data[$row->{$key}] = $row; }else{ $data[] = $row; } } return $data; } public function last_insert_id(){ return mysql_insert_id($this->conn); } /** * 履行
一条带有了局
集计数的 count SQL 语句, 并返该计数. */ public function count($sql){ $result = $this->query($sql); if($row = mysql_fetch_array($result)){ return (int)$row; }else{ return 0; } } /** * 入手下手
一个事务. */ public function begin(){ mysql_query('begin'); } /** * 提交一个事务. */ public function commit(){ mysql_query('commit'); } /** * 回滚一个事务. */ public function rollback(){ mysql_query('rollback'); } /** * 获得
指定编号的纪录
. * @param int $id 要获得
的纪录
的编号. * @param string $field 字段名, 默许
为'id'. */ function load($table, $id, $field='id'){ $sql = "select * from `{$table}` where `{$field}`='{$id}'"; $row = $this->get($sql); return $row; } /** * 保留
一笔记
录, 挪用
后, id被设置. * @param object $row */ function save($table, &$row){ $sqlA = ''; foreach($row as $k=>$v){ $sqlA .= "`$k` = '$v',"; } $sqlA = substr($sqlA, 0, strlen($sqlA)-1); $sql = "insert into `{$table}` set $sqlA"; $this->query($sql); if(is_object($row)){ $row->id = $this->last_insert_id(); }else if(is_array($row)){ $row['id'] = $this->last_insert_id(); } } /** * 更新$arr所指定的纪录
. * @param array $row 要更新的纪录
, 键名为id的数组项的值唆使
了所要更新的纪录
. * @return int 影响的行数. * @param string $field 字段名, 默许
为'id'. */ function update($table, &$row, $field='id'){ $sqlA = ''; foreach($row as $k=>$v){ $sqlA .= "`$k` = '$v',"; } $sqlA = substr($sqlA, 0, strlen($sqlA)-1); if(is_object($row)){ $id = $row->{$field}; }else if(is_array($row)){ $id = $row[$field]; } $sql = "update `{$table}` set $sqlA where `{$field}`='$id'"; return $this->query($sql); } /** * 删除一笔记
录. * @param int $id 要删除的纪录
编号. * @return int 影响的行数. * @param string $field 字段名, 默许
为'id'. */ function remove($table, $id, $field='id'){ $sql = "delete from `{$table}` where `{$field}`='{$id}'"; return $this->query($sql); } function escape(&$val){ if(is_object($val) is_array($val)){ $this->escape_row($val); } } function escape_row(&$row){ if(is_object($row)){ foreach($row as $k=>$v){ $row->$k = mysql_real_escape_string($v); } }else if(is_array($row)){ foreach($row as $k=>$v){ $row[$k] = mysql_real_escape_string($v); } } } function escape_like_string($str){ $find = array('%', '_'); $replace = array('\%', '\_'); $str = str_replace($find, $replace, $str); return $str; } } ?> 利用例子:
<?php // 保留
$db->save('table_1', $row); // 更新 $db->update('table_1', $row); // 删除 $db->remove('table_1', 1); // 查询 $rows = $db->find($sql, 'id') ?>理解动态语言的概念,运做机制,熟悉PHP语法

admin 发表于 2015-2-4 02:10:01

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

只想知道 发表于 2015-2-6 11:30:38

建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。

海妖 发表于 2015-2-12 10:23:57

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

兰色精灵 发表于 2015-2-14 05:13:38

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

若天明 发表于 2015-2-19 20:25:40

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

飘飘悠悠 发表于 2015-2-24 17:21:04

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

再现理想 发表于 2015-3-10 21:28:57

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

仓酷云 发表于 2015-3-16 19:07:35

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

深爱那片海 发表于 2015-3-18 08:25:19

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

小魔女 发表于 2015-3-25 14:11:04

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

柔情似水 发表于 2015-3-27 11:09:42

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

因胸联盟 发表于 2015-3-27 16:08:37

开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。

蒙在股里 发表于 2015-4-3 23:03:15

我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。

不帅 发表于 2015-4-4 21:10:53

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

活着的死人 发表于 2015-4-10 11:19:00

Ps:以上纯属原创,如有雷同,纯属巧合

分手快乐 发表于 2015-4-13 04:20:07

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

灵魂腐蚀 发表于 2015-4-13 15:58:58

对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。

小女巫 发表于 2015-4-14 17:59:41

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

爱飞 发表于 2015-4-16 08:12:59

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;
页: [1]
查看完整版本: PHP网页设计一个PHP MySQL操作类...