仓酷云

标题: PHP网页编程之操作MYSQL的一个PHP类 [打印本页]

作者: 精灵巫婆    时间: 2015-2-4 00:04
标题: PHP网页编程之操作MYSQL的一个PHP类
学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。   

<?php
/*
* 这个类原本是PHPLIB里的一局部,我做了些修正。
*/
class MyDB_Sql {
var $Host = "";
var $Database = "";
var $User = "";
var $Password = "";
var $Link_ID = 0;
var $Query_ID = 0;
var $Record = array();
var $Row;
var $Errno = 0;
var $Error = "";
var $Auto_free = 0; ## Set this to 1 for automatic mysql_free_result()
var $Auto_commit = 0; ## set this to 1 to automatically commit results
var $debugmode = 0;
function connect() {
if ( 0 == $this->Link_ID ) {
$this->Link_ID=mysql_pconnect($this->Host, $this->User, $this->Password);
if (!$this->Link_ID) {
$this->halt("Link-ID == false, pconnect failed");
}
if (!mysql_query(sprintf("use %s",$this->Database),$this->Link_ID)) {
$this->halt("cannot use database ".$this->Database);
}
}
}
function query($Query_String) {
$this->connect();
if ($this->debugmode)
printf("Debug: query = %s<br>\n", $Query_String);
$this->Query_ID = mysql_query($Query_String,$this->Link_ID);
$this->Row = 0;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
if (!$this->Query_ID) {
$this->halt("Invalid SQL: ".$Query_String);
}
return $this->Query_ID;
}
function next_record() {
$this->Record = mysql_fetch_array($this->Query_ID);
$this->Row += 1;
$this->Errno = mysql_errno();
$this->Error = mysql_error();
$stat = is_array($this->Record);
if (!$stat && $this->Auto_free) {
mysql_free_result($this->Query_ID);
$this->Query_ID = 0;
}
return $stat;
}
function seek($pos) {
$status = mysql_data_seek($this->Query_ID, $pos);
if ($status)
$this->Row = $pos;
return;
}
function metadata($table) {
$count = 0;
$id = 0;
$res = array();
$this->connect();
$id = @mysql_list_fields($this->Database, $table);
if ($id < 0) {
$this->Errno = mysql_errno();
$this->Error = mysql_error();
$this->halt("Metadata query failed.");
}
$count = mysql_num_fields($id);
for ($i=0; $i<$count; $i++) {
$res[$i]["table"] = mysql_field_table ($id, $i);
$res[$i]["name"] = mysql_field_name ($id, $i);
$res[$i]["type"] = mysql_field_type ($id, $i);
$res[$i]["len"] = mysql_field_len ($id, $i);
$res[$i]["flags"] = mysql_field_flags ($id, $i);
$res["meta"][$res[$i]["name"]] = $i;
$res["num_fields"]= $count;
}
mysql_free_result($id);
return $res;
}
function affected_rows() {
return mysql_affected_rows($this->Link_ID);
}
function num_rows() {
return mysql_num_rows($this->Query_ID);
}
function num_fields() {
return mysql_num_fields($this->Query_ID);
}
function nf() {
return $this->num_rows();
}
function np() {
print $this->num_rows();
}
function f($Name) {
return $this->Record[$Name];
}
function p($Name) {
print $this->Record[$Name];
}
function halt($msg) {
printf("</td></tr></table><b>Database error:</b> %s<br>\n", $msg);
printf("<b>MySQL Error</b>: %s (%s)<br>\n",
$this->Errno,
$this->Error);
die("Session halted.");
}
}
class SQL extends MyDB_Sql {
var $Host = "localhost";
var $Database = "";
var $User = "";
var $Password = "";
function free_result() {
return @mysql_free_result($this->Query_ID);
}
function rollback() {
return 1;
}
function commit() {
return 1;
}
function autocommit($onezero) {
return 1;
}
function insert_id($col="",$tbl="",$qual="") {
return mysql_insert_id($this->Query_ID);
}
}
?>

把例子全部敲进去试验,完成一遍以后就会有心得了,因为你会发现为啥我的程序和书上的一模一样就是结果不正确。新手学习的时候必须承认,不容易,因为我也是过来人,你会发现原来有那么多常用的语句,函数都要记。
作者: 山那边是海    时间: 2015-2-4 08:24
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 因胸联盟    时间: 2015-2-9 20:02
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: admin    时间: 2015-2-15 23:38
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 兰色精灵    时间: 2015-3-3 19:44
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 爱飞    时间: 2015-3-7 23:33
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 精灵巫婆    时间: 2015-3-15 00:06
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 谁可相欹    时间: 2015-3-17 12:07
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 只想知道    时间: 2015-3-17 18:21
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 第二个灵魂    时间: 2015-3-18 00:21
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 不帅    时间: 2015-3-26 07:23
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 分手快乐    时间: 2015-4-4 12:21
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 小女巫    时间: 2015-4-18 14:57
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 透明    时间: 2015-4-21 21:10
爱上php,他也会爱上你。
作者: 柔情似水    时间: 2015-4-22 20:52
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 小魔女    时间: 2015-5-8 00:22
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 再现理想    时间: 2015-5-12 02:51
当然这种网站的会员费就几十块钱。
作者: 冷月葬花魂    时间: 2015-6-4 01:44
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 再见西城    时间: 2015-6-12 16:58
实践是检验自己会不会的真理。
作者: 飘灵儿    时间: 2015-6-15 02:37
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2