php100学习记录80-81

80讲
介绍了ADODB PHP数据库万能引擎类
如何使用ADODB链接数据库,添加内容,查询内容、输出内容
代码如下,下载

<?php
   include_once("adodb5/adodb.inc.php");//载入adodb文件
 
   $db = NewADOConnection('mysql');//确定数据库类型
   $db->Connect("localhost", "root", "", "zend") or die("error");//链接数据库
 
   $db->Execute("set names 'GBK'");//执行sql语句
	/*
	$q=$db->Execute("SELECT * FROM `message` ");//执行sql语句
	while($row=$q->FetchRow()){                 //while循环输出
	print_r($row);
	}
	*/
   $arr=array(
   "title"=>"10",
   "content"=>"999",
   "php100"=>".com" //可过滤字段
   );
   $db->AutoExecute("message",$arr,"INSERT");//自动执行sql,参数为 表名称、数组、INSERT
?>

81讲
介绍了adodb实现的几个功能
1、 PHP ADODB 地址方式连接数据库
2、 PHP ADODB 对象方式获取数据库内容
3、 PHP ADODB HTML代码方式显示内容
4、 PHP ADODB 实现内容自动分页功能
代码如下,下载

<?php
include_once("adodb5/adodb.inc.php");//载入adodb文件
 
/*
//====================PHP ADODB 地址方式连接数据库
$db = NewADOConnection('mysql://root:@localhost/zend');
$sql="SELECT * FROM `message`";
 
echo $db->SetFetchMode(ADODB_FETCH_NUM); //两张模式 ADODB_FETCH_NUM和ADODB_FETCH_ASSOC
$sr1 = $db->Execute($sql);
 
print_r($sr1->fields);
 
*/
 
 
/*
//====================PHP ADODB 对象方式获取数据库内容
   $db = NewADOConnection('mysql');
   $db->PConnect("localhost", "root", "", "zend");
   $sql="SELECT * FROM `message`";
   $rs2=$db->Execute($sql);
 
  while($row=$rs2->FetchNextObject()){  //已对象的方式输出
    print_r($row);
	//echo $row->TITLE; //获取name值,注意字段要大写
  }
 
*/
 
/*
//====================PHP ADODB HTML代码方式显示内容
   include_once("adodb5/tohtml.inc.php");
 
   $db = NewADOConnection('mysql');
   $db->PConnect("localhost", "root", "", "zend");
   $sql="SELECT * FROM `message`";
   $rs2=$db->Execute($sql);
 
   echo rs2html($rs2);
*/
 
/*
//====================PHP ADODB 实现内容自动分页功能
include_once("adodb5/adodb-pager.inc.php");
	session_start();
	$db = NewADOConnection('mysql');
    $db->PConnect("localhost", "root", "", "zend");
    $sql="SELECT * FROM `message`";
    $pager=new ADODB_Pager($db,$sql);
    $pager->Render(3);
*/
?>

php100学习记录79

这一讲是关于如何上传压缩包文件并解压文件,代码如下

<?php
if($_POST[sub]){
	$dir=getcwd();//获取当前绝对路径
 
	$tname=$_FILES[upfile][tmp_name]; //文件被上传后在服务端储存的临时文件名
	$nname=$_FILES[upfile][name];     //客户端文件的原名称
	//echo $tname."<br>".$nname;
	move_uploaded_file($tname,$nname);//上传移动文件函数,第一参数为 规定要移动的文件 第二参数为 规定文件的新位置
 
	$obj=new com("wscript.shell");//加载wscript.shell用来执行dos命令的组件
	$obj->run("winrar x $dir\\".$nname." "."$dir\\rar\\",1,true);
	//Rar解压命令:  winrar x 被解压文件 解压的位置,注意空格
	//第二、三参数为返回参数
	unlink($nname);//删除文件
}
 
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="upfile">
<input type="submit" name="sub">
</form>

php100学习记录76-77

76讲
配置config.ini文件

在控制器IndexController.php添加方法addAction ,该方法是用来添加数据的,关联add.html模板文件

在view文件夹建立add.html

访问地址为/index/add/

77讲
在控制器IndexController.php添加方法editAction ,该方法是用来修改数据的,关联edit.html模板文件

在控制器IndexController.php添加方法delAction ,该方法是用来删除数据的

熟悉insert()、update()、delete()方法的使用

模板只有edit.html要注意一下,最后77讲源码下载

IndexController.php

<?php
class IndexController extends Zend_Controller_Action
{	
 
	function init() //__construct 代替初始化函数
    {
        $this->registry = Zend_Registry::getInstance();
        $this->view = $this->registry['view'];
        $this->view->baseUrl = $this->_request->getBaseUrl();
 
    }
 
	/*
	 * Action(动作)!
	 */
	function indexAction()
    {
    	$message=new message();//实例化数据库类
        $this->view->messages=$message->fetchAll()->toArray();//获取数据库内容,模板中使用$this->messages调用这个数组
		echo $this->view->render('index.html');//显示模版
    }
 
    function addAction() 
    { 
    	  if(strtolower($_SERVER['REQUEST_METHOD'])=='post'){
 
			$content=$this->_request->getPost('content');
			$title=$this->_request->getPost('title');
 
			$message=new Message();
			$data=array(
					'content'=>$content,
					'title'=>$title
			);
			$message->insert($data);
			unset($data);
			echo '您增加数据成功!请您<a href="'.$this->view->baseUrl.'/index/index/">返回</a>';
 
    	}else{
 
		echo $this->view->render('add.html');//显示模版  
    }
    } 
 
     function editAction(){ 
 
     		$message=new Message();
     		$db=$message->getAdapter();
    	  if(strtolower($_SERVER['REQUEST_METHOD'])=='post'){
 
			$content=$this->_request->getPost('content');
			$title=$this->_request->getPost('title');
			$id=$this->_request->getPost('id');
			$set=array(
					'content'=>$content,
					'title'=>$title
			);
			$where=$db->quoteInto('id=?', $id);
			$message->update($set, $where);
			unset($set);
			echo '您修改数据成功!请您<a href="'.$this->view->baseUrl.'/index/index/">返回</a>';
 
    	}else{
			$id=$this->_request->getParam('id');
			$this->view->messages=$message->fetchAll('id='.$id)->toArray();
			echo $this->view->render('edit.html');//显示编辑模版  
    }
    } 
 
    function delAction(){ 
 
     		$message=new Message();
     		$db=$message->getAdapter();
     		$id=(int)$this->_request->getParam('id');
     		$where=$db->quoteInto('id=?', $id);
     		$message->delete($where);
			echo '您修改数据成功!请您<a href="'.$this->view->baseUrl.'/index/index/">返回</a>';
    } 	
}

php100学习记录75讲

zend framework 1.11.6下载地址,如果有新版本,对应的改下版本号即可
http://framework.zend.com/releases/ZendFramework-1.11.6/ZendFramework-1.11.6.zip

75讲 75讲源码下载

什么是zend framework?是一个开放源代码的PHP5 开发框架,ZF 100%用面向对象代码实现。

如何配置zend framwork?
详见下图
一、环境搭配:
php5.2以上环境
开启PDO
开启rewrite
配置htaccess

二、文件夹配置情况

IndexController.php中的一点疑问:
查看这一句

$this->view->messages=$message->fetchAll()->toArray();//获取数据库内容,模板中使用$this->messages调用这个数组
//我的问题是一定要用$this->messages这种格式吗?是zendframework规定的格式吗?
<?php
class IndexController extends Zend_Controller_Action
{	
 
	function init() //__construct 代替初始化函数
    {
        $this->registry = Zend_Registry::getInstance();
        $this->view = $this->registry['view'];
        $this->view->baseUrl = $this->_request->getBaseUrl();
 
    }
 
	/*
	 * Action(动作)!
	 */
	function indexAction()
    {
    	$message=new message();//实例化数据库类
        $this->view->messages=$message->fetchAll()->toArray();   //获取数据库内容,模板中使用$this->messages调用这个数组
		echo $this->view->render('index.html');//显示模版
    }
?>

关于其中的几点疑问:
一、其中的双冒号是什么意思?
答:调用类的静态属性或方法,参考
二、