MySQL 5.0 以上支持存储过程。
PHP 5.0 以上的 mysqli 系列函数可以支持操作 MySQL 的存储过程。
以下是一些简单的存储过程和用 PHP 调用的示例。 一、返回单个数据: 1: <?php
2: header("Content-Type:text/html;charset=utf-8");
3:
4: $host = "localhost";
5: $user = "root";
6: $password = "mypassword";
7: $db = "test_store_proc";
8: $dblink = mysqli_connect($host, $user, $password, $db) or die("can't connect to mysql");
9:
10: $dblink->query('SET NAMES UTF8');
11: if ($result = $dblink->query("CALL sp_test0(@num, @x, 123)"))
12: {
13: $rs = $dblink->query("select @num");
14: $row = $rs->fetch_array();
15: echo $row['@num'], '<br>';
16:
17: $rs = $dblink->query("select @x&qu ......
MySQL 5.0 以上支持存储过程。
PHP 5.0 以上的 mysqli 系列函数可以支持操作 MySQL 的存储过程。
以下是一些简单的存储过程和用 PHP 调用的示例。 一、返回单个数据: 1: <?php
2: header("Content-Type:text/html;charset=utf-8");
3:
4: $host = "localhost";
5: $user = "root";
6: $password = "mypassword";
7: $db = "test_store_proc";
8: $dblink = mysqli_connect($host, $user, $password, $db) or die("can't connect to mysql");
9:
10: $dblink->query('SET NAMES UTF8');
11: if ($result = $dblink->query("CALL sp_test0(@num, @x, 123)"))
12: {
13: $rs = $dblink->query("select @num");
14: $row = $rs->fetch_array();
15: echo $row['@num'], '<br>';
16:
17: $rs = $dblink->query("select @x&qu ......
function getsock($strUrl,$arrParameter=array(),$strMethod="POST"){
if(!$strUrl||!$strMethod){ return "";}
$strMethod = strtoupper($strMethod);
$arrUrl = parse_url($strUrl);
if($arrUrl["port"]==0){$arrUrl["port"]=80;}
$fso = fsockopen($arrUrl["host"],$arrUrl["port"],$intErrno,$strError,10);
if(!$fso){
return "";
}else{
$strFileName = $arrUrl["path"];
if($arrUrl["query"]!=""){
$strFileName.= "?".$arrUrl["query"];
}
$strHeader = "$strMethod $strFileName HTTP/1.1\r\n";
$strHeader .= "Host:".$arrUrl["host"].":".$arrUrl["port"]."\r\n";
if($strMethod=="POST"){
if(is_array($arrParameter)){
$blnFlag = 0;
foreach($arrParameter as $strKey=>$Value){
if($blnFlag){
&nb ......
本文软件的下载地址就不列出,主要是记录安装时的步骤及相关问题的处理方法;基于安装方法目前有两种,一种是利用RPM包安装,一种源码编译安装;以下主
要是以源码编译安装;因为源码安装软件的相互依赖性小,安装方式用各种unix/linux系统,维护方便。如果想去除相关服务时,直接rm
–rf目录 即可;建议采用源码方式安装;
系统环境和需要的软件:
1、CentOS
2、httpd-xxx.tar.gz
3、php5-xxx.tar.gz
4、mysql-xxx.tar.gz
5、所有软件安装目录/usr/local/
服务器软件安装顺序:Apache(httpd) --> Mysql --> PHP
Apache编译安装
[root@server src]# tar -zxvf /home/soft/httpd-2.0.63.tar.gz
[root@server src]# cd httpd-2.0.63/
[root@server httpd-2.0.63]#./configure --prefix=/usr/local/apache --enable-so
[root@server httpd-2.0.63]# make clean; make
[root@server httpd-2.0.63]## make install
执行完以上命令后,执行 /usr/local/apache/bin/httpd -l检查mod_so模块是否已编译,如下图:
Mysql编译安装
[root@server src]# tar -zxvf /home/soft/mysql-5.0.56.tar.gz
[root@server src]# cd mysql-5.0.56/
[root ......
本文软件的下载地址就不列出,主要是记录安装时的步骤及相关问题的处理方法;基于安装方法目前有两种,一种是利用RPM包安装,一种源码编译安装;以下主
要是以源码编译安装;因为源码安装软件的相互依赖性小,安装方式用各种unix/linux系统,维护方便。如果想去除相关服务时,直接rm
–rf目录 即可;建议采用源码方式安装;
系统环境和需要的软件:
1、CentOS
2、httpd-xxx.tar.gz
3、php5-xxx.tar.gz
4、mysql-xxx.tar.gz
5、所有软件安装目录/usr/local/
服务器软件安装顺序:Apache(httpd) --> Mysql --> PHP
Apache编译安装
[root@server src]# tar -zxvf /home/soft/httpd-2.0.63.tar.gz
[root@server src]# cd httpd-2.0.63/
[root@server httpd-2.0.63]#./configure --prefix=/usr/local/apache --enable-so
[root@server httpd-2.0.63]# make clean; make
[root@server httpd-2.0.63]## make install
执行完以上命令后,执行 /usr/local/apache/bin/httpd -l检查mod_so模块是否已编译,如下图:
Mysql编译安装
[root@server src]# tar -zxvf /home/soft/mysql-5.0.56.tar.gz
[root@server src]# cd mysql-5.0.56/
[root ......
很多时候我们喜欢用js来获取日期和时间,但这仅仅是客户端的。
我们可以用php的date函数即可来获取服务器上的时间:
<?php
//将时区设置为中国
date_default_timezone_set("PRC");
echo date("Y-m-d l H:i:s A");
//例输出:2010-03-06 Saturday 11:51:29 AM
?> ......
PHP中插件机制的一种实现方案
这篇文章的出发点是由于一朋友问我是否会插件,以及对插件机制是否理解,及其在PHP中的实现。我当时认为不就是一个功能的实现么,呵呵。想法很简单,在网上查了一下,才知道原来不是那么简单的一回事,在网上摘录了一个方法,此方案仅是插件机制在PHP中的实现方案之一,摘录下来和大家分享,欢迎大家一起讨论。
插件,亦即Plug-in,是指一类特定的功能模块(通常由第三方开发者实现),它的特点是:当你需要它的时候激活它,不需要它的时候禁用/删除它;且无论是激活还是禁用都不影响系统核心模块的运行,也就是说插件是一种非侵入式的模块化设计,实现了核心程序与插件程序的松散耦合。一个典型的例子就是Wordpress中众多的第三方插件,比如Akimet插件用于对用户的评论进行Spam过滤。
一个健壮的插件机制,我认为必须具备以下特点:
插件的动态监听和加载(Lookup)
插件的动态触发
以上两点的实现均不影响核心程序的运行
要在程序中实现插件,我们首先应该想到的就是定义不同的钩子(Hooks);“钩子”是一个很形象的逻辑概念,你可以认为它是系统预留的插件触发条件。它的逻辑原理如下:当系统执行到 ......
1 <?php
2 $doc = new DOMDocument('1.0', 'utf-8');
3 $doc->load('./articles.xml');
4
5 $xpath = new DOMXPath($doc);
6 /*
7 * $xpath = domxml_open_file("articles.xml");
8 */
9 $arts = $xpath->query("/articles/article/title");
10
11 foreach ($arts as $art)
12 {
13 echo $art->nodeValue." ";
14 }
15 ?>
其中,articles.xml的内容如下:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <articles>
3 <article id="1">
4 <tags>
5 <tag>php</tag>
6 <tag>xpath</tag>
7 </tags>
8 &n ......