$options['where'] 和$map['_string']都为真 并$map['items'] = $options['where']
$options['where'] &&$map['_string']为真的时候执行$map['items'] = $options['where']这条表达式,应该是这样的吧
if($options['where'] && $map['_string']){ $map['items'] = $options['where'];}
下面这个,是针对php5的一个简单数据库封装类,适合学习,其他的如删除、更新等操作,你可以自己加上:<?phpclass Mysql{ //首先定义一个类,首写字母大写 public $host;//服务器名,访问修饰符PUBLIC证明$host是一个公共的属情在类的内部外部都可访问,可以被继承 public $user;//用户名,是公共的属性 private $pass;//密码,问修饰符private证明$pass是私有的.只能在类的内部使用且不能被继承. public $dbname;//数据库名,也是公共的属性. //__construct声名这是一个造函数,定义一些初始的信息.有三个参数 public function __construct($host,$user,$pass,$dbname){ $this->host = $host; $this->user = $user; $this->pass = $pass; $this->dbname = $dbname; $link = @mysql_connect($this->host,$this->user,$this->pass) or die("error"); @mysql_select_db($this->dbname,$link) or die("error2"); }//定义数据库的查寻和显示函数function myQuery($sql){ $result = mysql_query($sql); if(!$result){ echo "error3"; exit; } $num = mysql_num_rows($result); if($num){ echo "NO".$num; } while($row = mysql_fetch_assoc($result)){ echo '<tr><td bgcolor="#fffddd"><pre>'.htmlspecialchars(stripslashes($row['body']))."<pre></td></tr>"; } }}$rutt = new Mysql('localhost','root','ssss','calvin');//实例化一个类...记住这里的参数是和构造函数的参数一样的...$rutt->myQuery('select * from calvin_body');//运行数据库查寻并显示的函数..?>
马上给你 <?php /*===============================================================*/ /*文件名:Model.class.php */ /*概要: 模块处理类,公用的数据库的操作*/ /*作者:袁再新 */ /*作品声明:本人属于初学者,限于技术水平勿将此例作为商用*/ /*制作时间:2012-3-30 */ /*===============================================================*/ // class Model{ protected $pdo; protected $tabName; protected $messList; protected $fieldList; function __construct(){ try{ $this->pdo=new PDO('mysql:dbname='.DB_NAME.';host='.DB_HOST,DB_USER,DB_PSWD,array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION)); $this->pdo->exec('set names gbk');//解决字符编码问题 }catch(PDOException $e){ echo '数据库连接失败:'.$e->getMessage(); exit; } }function add($postList){ $fieldList=''; $value=''; foreach($postList as $key=>$val){ if(in_array($key,$this->fieldList)){ $fieldList.=$key.','; if($key=='userPwd'){ $val=md5($val); } if(!get_magic_quotes_gpc()){ $value.="'".addslashes($val)."'".','; }else{ $value.="'".$val."',"; } } } $fieldList=rtrim($fieldList,','); $value=rtrim($value,','); try{ $sql='INSERT INTO '.$this->tabName.'('.$fieldList.')'.' values('.$value.')'; $affected=$this->pdo->exec($sql); }catch(PDOException $e){ echo '数据录入失败:'.$e->getMessage(); echo $sql; exit(); } return $affected; }function mod($postList){ $id=''; $value=''; $id=$postList['id']; unset($postList['id']); foreach($postList as $key=>$val){ if(in_array($key,$this->fieldList)){ if(!get_magic_quotes_gpc()){ if($key=='userPwd'){ $val=md5(addslashes($val)); }else{ $val=addslashes($val); } $value.=$key."='".$val."',"; }else{ $value.=$key."='".$val."',"; } } } $value=rtrim($value,','); try{ $sql='UPDATE '.$this->tabName.' SET '.$value.' WHERE id='.$id; $affected=$this->pdo->exec($sql); }catch(PDOException $e){ echo '更新失败;'.$e->getMessage(); exit; } return $affected; } function del($id){ if(is_array($id)){ $tmp='IN ('.join(',',$id).')'; }else{ $tmp="$id"; } try{ $affected=$this->pdo->exec('DELETE FROM '.$this->tabName.' WHERE id='.$tmp); }catch(PDOException $e){ echo '数据删除失败:'.$e->getMessage(); exit(); } return $affected; }function find($id){ $fields=join(',',$this->fieldList); $sql='SELECT '.$fields.' FROM '.$this->tabName.' WHERE id='.$id; $stmt=$this->pdo->query($sql); if($stmt&&$stmt->rowCount()>0){ return $stmt->fetch(PDO::FETCH_ASSOC); }else{ //echo $stmt;作为调试用 return false; } } function total($where=''){ $sql='SELECT * FROM '.$this->tabName.' '.$where; $stmt=$this->pdo->query($sql); return $stmt->rowCount(); } function findAll($where='',$field=array(),$offset=0,$number=0,$isall=false,$order='id desc'){ if(empty($field)){ $field=join(',',$this->fieldList); }else{ $field=join(',',$field); } if($number==0){ $sql='SELECT '.$field.' FROM '.$this->tabName." ".$where.' ORDER BY '.$order; }else{ $sql='SELECT '.$field.' FROM '.$this->tabName." ".$where.' ORDER BY '.$order.' LIMIT '.$offset.','.$number; } $stmt=$this->pdo->query($sql); if($stmt&&$stmt->rowCount()>0&&$isall===false){ return $stmt->fetch(PDO::FETCH_ASSOC); }elseif($stmt&&$stmt->rowCount()>0&&$isall===true){ return $stmt->fetchAll(PDO::FETCH_ASSOC); }else{ return false; } } function getMessList(){ $message=''; if(!empty($this->messList)){ foreach($this->messList as $value){ $message.=$value.'<br>'; } } return $message; }}
这是一个类吧?其实我想要能实现的具体代码,
.是字符串连接运算,例如:echo 'abc' . 'def';输出abcdef
php不是一切皆对象,只有类class才是对象,在类中可以添加,(添加、删除、使用)的方法,当然你要编写一切皆对象的php程序也是可以的。看你功力了。
||<html><head><title>添加员工信息</title></head><body><body bgcolor="#fffccc"><form method="POST" action="<?php echo $PHP_SELF?>"> <input type=hidden name="id" value="<?php echo $id ?>"> 姓名:<input type="Text" name="name" value="<?php echo $name?>"> <br> 住址:<input type="Text" name="address" value="<?php echo $address?>"> <br> 职位:<input type="Text" name="positon" value="<?php echo $position ?>"> </p> <input type="Submit" name="submit" value="输入信息" > </form><?php$db=mysql_connect("localhost", "root", "") or die ("sorry,unable to connect to database");//连接数据库mysql_select_db("test",$db)or die ("unable to select database");//选择数据库?><?phpif($_POST['submit']=="输入信息"){ $name = $_POST['name']; $address = $_POST['address']; $position = $_POST['position']; if($_POST['name']==""||$_POST['address']==""||$_POST['position']==""){ echo "<font color =red> 添加失败,请把信息填写完整</font><br>"; }else{ $sql="INSERT INTO employees (name,address,position) VALUES ('$name','$address','$position')"; //向数据库发出 SQL 命令 $result=mysql_query($sql); echo "<font color=red>记录插入成功!!</font><br>"; }}?></body></html>你复制回去试试。
关于用PHP连接ACCESS数据库的做法用ASP和PHP的,一起做一个比较..ASP程序程序代码 程序代码1.conn= "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("*.mdb")2.set conn = server.createobject("adodb.connection")3.conn.open conn4.set rs = Server.CreateObject("adodb.recordset") 5.sql = "select * from 表名"6.rs.Open sql, conn, 3, 17.rs.ClosePHP程序程序代码 程序代码<?PHP1.$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");2.$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");3.$conn->Open($connstr);4.$rs = @new COM("ADODB.RecordSet");5.$sql ="select * from blog_Content";6.$rs->Open($sql,$conn,1,3);7.$rs->close(); ?>两个程序都相对应....很好理解了吧.嘿....然后就是ASP和PHP操作记录集了...有什么不同,,看资料了事5~php: $rs[name/index]; asp: rs(name/index); php: $rs->Fields["name"]->Value / fields[index]->Value;asp: rs.fields(index)/rs.field(name); php中的方法和ASP中基本一致,只是写法上不一样,,注意:PHP区分大小写,写时后面一定要加;号 asp:修改记录集中的记录 rs.AddNew 向记录集中添加一条新记录 rs.Delete 从记录集中删除一条记录 rs.{fieldName/fieldIndex}=指定值; rs.Update 保存对当前记录所做的修改 CancelBatch 当记录集处在批量更新模式时)取消一批更新 CancelUpdate 调用Update之前)取消对当前记录所做的所有修改 UpdateBatch 当记录集处于批量更新模式时)保存对一个或多个记录的修改遍历记录集Move NumRecords 在记录集中向前或向后移动指定数目的记录数。MoveFirst 移动到记录集的第一条记录MoveNext 移动到记录集的下一条记录MovePrevious 移动到记录集中的上一条记录MoveLast 移动到记录集的最后一条记录记录集对象属性AbsolutePosition 用来设置或读取当前记录在记录集中的位置顺序号BOF 标明当前位置在记录集中的第一条记录之前EOF 标明当前位置在记录集中的最后一条记录之后RecordCount 表示一个记录集中的记录总数记录集进行分页AbsolutePage 指定当前的页PagePount 返回记录集中的逻辑页数PageSize 指定一个逻辑页中的记录个数,缺省值是10GetRows() 记录取到数组MaxRecords 记录集的最大容量本人注:在文章最后只给出了ASP的内容,没有找到PHP的啊,还有我试验了以上内容,可是发现那容输出以后只是一个Object单词,不知道为什么,还希望高手不吝赐教!
参考资料:http://blog.ialway.com/trackback.asp?tbID=45
这个是作用域限定操作符,是用一个双冒号"::"表示,它用来置顶类中不同作用域的级别。左边是作用域右边是访问作用域的成员。 在php中定义的作用域有self和parent两种(在php6中提供了static作用域)。 self:表示当前类的作用域,与this不同的是它不表示类的某个特定实例,在类之外的代码中不能使用self,而且它不能识别自己在继承中层次的位置。也就是说,当在扩展类中使用self时,它调用的不是父类的方法,而是扩展类的重载的方法。parent:表示当前类父类的作用域,其余的跟self特性一样。
没有多少人是这么干的,因为php与mysql的兼容性才是最好、最稳定的,而且php讲求的是开源免费商业版的Oracle是要收费的 那么你会牺牲一小部分的安全去链接Oracle的不稳定性跟提高你的开发费用吗?我就没见过有项目是用PHP操作ORACLE了,Oracle有的mysql也有,而且Oracle里面的东西70%在开发过程中是用不着的