都说pear库挺强大的,今天研究了一下代码,感觉好多地方还不是很完善,自己又把需要信息的整合了一下。
封装了一个查询库,这个函数库的主要思想是一行代码完成所有查询,并且返回结果都是四种(insert,update ,select,update)不同类型的合适需要的结果!
- <?php
- //pear 扩展
- require_once 'DB.php';
- $user = 'root';
- $pass = '123456';
- $host = '127.0.0.1';
- $db_name = 'mysql';
- $dsn = "mysql://$user:$pass@$host/$db_name";
- function excute_sql($sql)
- {
- global $dsn;
- $db = DB::connect($dsn);
- if (DB::isError($db))
- {
- die ($db->getMessage());
- }
- $result = $db->query($sql);
- if (DB::isError($result))
- {
- die ($result->getMessage());
- }
- $key_word = strtolower(substr(trim($sql),0,6));
- //查询
- if($key_word=='select')
- {
- //$res 返回数组
- while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC))
- {
- $res[] = $row;
- }
- //如果存在结果集,释放结构集
- if(is_array($res))
- {
- $result->free();
- }
- }
- else if($key_word=='update' || $key_word=='delete')
- {
- //返回修改的行数
- $res = $db->affectedRows();
- }
- else if ($key_word=="insert")
- {
- //返回刚刚插入的id;
- $res = @mysql_insert_id($db->connection);
- }
- /*
- //结果集
- print_r($array_res);
- //自增长索引id 若无表auto_inc_seq 自动创建auto_inc_seq
- echo $db->nextID('auto_inc');
- //可以这样计算记录数
- echo "row_num:".$result->numRows();
- if (DB::isError($result))
- {
- die ($result->getMessage());
- }
- */
- //print_r($id);
- $db->disconnect();
- return $res;
- }
- /*
- //测试查询
- $sql = "select * from user";
- print_r(excute_sql($sql));
- */
- //测试更新
- /*
- $sql = "update auto_inc_seq set id=id+1";
- var_dump(excute_sql($sql));
- */
- /*
- //测试删除
- //不用添加where 1=1因为库中已经替你添加
- $sql = "delete from auto_inc_seq";
- var_dump(excute_sql($sql));
- */
- /*
- //测试插入数据
- */
- /*
- $sql = "insert into auto_inc_seq(id) values (313)";
- var_dump(excute_sql($sql));
- */