http://wp1314.ycool.com/post.3009872.html
转:http://www.5ga.cn/blog/archives/2008/12/1064
最近对我的PHP后台框架进行些升级维护,决定引入JQuery,和PHP的一个数据库模块PDO,以前用的是自己写的类,作为方便以后使用其他数据库备用,由于现在的PDO中文帮助还是比较少,所以做一个笔记.

各各扩展所对应的数据库是:

Driver name Supported databases
PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD Firebird/Interbase 6
PDO_INFORMIX IBM Informix Dynamic Server
PDO_MYSQL MySQL 3.x/4.x
PDO_OCI Oracle Call Interface
PDO_ODBC ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PDO_PGSQL PostgreSQL
PDO_SQLITE SQLite 3 and SQLite 2


   1.
      $user=’root’;//数据库连接用户名
   2.
      $pass=”;//对应的密码
   3.
      try{
   4.
          $db = new PDO(’mysql:host=localhost;dbname=test’, $user, $pass,array(PDO::ATTR_PERSISTENT => true));//初始化PDO对象
   5.
          //默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true)
   6.
          $db = new PDO(’数据库类型:host=主机地址;dbname=数据库名’,用户名,密码,array(PDO::ATTR_PERSISTENT => true));
   7.
         $db->query(’SET NAMES \’utf8\”);//设置连接数据库的语言环境
   8.
          echo "连接成功";
   9.
          /*你还可以进行一次搜索操作
  10.
         foreach($dbh->query(’SELECT * from gaga’)as $row){
  11.
              print_r($row);//你可以用 echo($GLOBAL); 来看到这些值
  12.
          }
  13.
         */
  14.
          //$db = null;
  15.
      }catch(PDOException$e){
  16.
          die(’数据库连接错误: ‘.$e->getMessage().’
  17.
      ‘);
  18.
      }
阅读全文
//Curl Get数据
function _curl_get($url) {      
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL,$url);    
    curl_setopt($ch, CURLOPT_HEADER, 0);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
    $data = curl_exec($ch);        
    curl_close($ch);      
    if ($data)  
        return $data;    
    else
        return false;    
}      

//Curl Post数据
function _curl_post($url, $vars) {      
    $ch = curl_init();  
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);      
    curl_setopt($ch, CURLOPT_URL,$url);    
    curl_setopt($ch, CURLOPT_POST, 1 );    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);    
    $data = curl_exec($ch);        
    curl_close($ch);      
    if ($data)  
        return $data;    
    else
        return false;    
}  
http://www.cmrn.com.cn/ztbg/o/200803/512772.html
http://www.52rd.com/Blog/Detail_RD.Blog_imjacob_17246.html
函数指针,函数对象,闭包,命令模式这四个东西都可以作为回调使用,那他们之间的联系和区别是怎么样的呢?阅读全文
命令和函数是完全不同的概念。
一般来说,如果在讲解编程的书里出现命令,指的大多是用于控制编程环境的、属于编程软件的命令;而函数是程序中的一个执行单元,是代码本身的一部分。
在我的印象中,只有少数几种语言有“命令”这种元素,比如SQL查询语言或LOGO语言等等。而在大多数的程序设计语言如C++、C#、Delphi、VB中,都没有命令这个概念。

- echo

是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如:
echo $myvar1;
echo 1,2,$myvar,"<b>bold</b>";

- print

是函数,可以返回一个值,只能有一个参数。阅读全文
可以用使用超全局变量定义( $_POST,$_GET,$_SESSION,$_COOKIE,$_SERVER,$_FILES,$_REQUEST,$_ENV

)呀 无需使用global声明了
如:
$_GET[‘val’] = 1;
function echoVal() {
    echo $_GET[\'val\'];
}


方法二:
先在config.inc.php里定义常量:define(常量名,常量值)
再在其他需要用到的地方require 'config.inc.php',




使用 global

<?PHP
$temp1 = 1;
$temp2 = 2;
function SumAll()
{
  global $temp1, $temp2;
  $temp2 = $temp1 + $temp2;
}
SumAll();
echo $temp2;
?>

结果为:3
以上脚本的输出将是“3”.在函数中申明了全局变量 $temp1和$temp2,任何变量的所有引用变量都会指向到全局变量.
在全局范围内访问变量的第二个办法,是用特殊的 PHP 自定义 $GLOBALS 数组。前面的例子可以写成:
使用 $GLOBALS 替代 global

<?PHP
$temp1 = 1;
$temp2 = 2;
function Sum()
{
  $GLOBALS['temp2'] = $GLOBALS['temp1'] + $GLOBALS['temp2'];
}
Sum();
echo $temp2;
?>

在 $GLOBALS 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容.$GLOBALS 之所以在全局范围内存在,是因为$GLOBALS 是一个超全局变量.
在PHP中使用全局变量的数量也没有限制。
PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力;与ADODB和MDB2相比,PDO更高效。目前而言,实现“数据库抽象层”任重而道远,使用PDO这样的“数据库访问抽象层”是一个不错的选择。阅读全文

<?
require("./mysql.class.php");
$DB=new DB_MYSQL;
$DB->dbServer="localhost";
$DB->dbUser="root";
$DB->dbPwd="";
$DB->dbDatabase="center";
$DB->connect(); // 连接数据库
?>


阅读全文
赵普,宋太祖赵匡胤的开国大臣、宋太宗赵匡义的治国能臣,三度出任宰相。盛传他熟悉吏事,善于解决实际问题。一次太宗赵匡义与之探讨,赵普说了如下一段话:“《论语》二十篇,吾以一半佐太祖定天下。”从此,“半部《论语》治天下”的故事广为流传。

  对我人生和事业影响最大的一部书,是《论语》。我只是切实奉行了其中几句话,就得到了巨大的收益。孔子说“学而时习之”,我是“习而时学之”;别人是“参禅悟道”,我是“悟道参禅”。信手拈来书中几句话,说说我的感受……阅读全文
问:为什么服务器在连续运行多天后或访问峰值后,进程中的一个Apache.exe占用内存几百兆不减少?

答:用记事本打开apache2\conf\httpd.conf,查找MaxRequestsPerChild,将MaxRequestsPerChild 0改成MaxRequestsPerChild 50即可。

  通常在“Windows任务管理器-进程”中可以看到两个apache.exe进程,一个是父进程、一个是子进程,父进程接到访问请求后,将请求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理 “MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。

  如果MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出



解决方法: 初始化,unset不用的大数据量的变量。适当减小操作数据规模。

检查内存释放状况。

$a=array();
for($i=0;$i<=1000000;$i++)
{
$a[$i]=$i;      
}
unset($a);


假设我原始占用内存50M
多刷新几次,占用内存到200M,稍后恢复,但不再是50M,而是60M
说明多出10M,看来这有可能是内存泄露引起

找到问题了,是由于MaxRequestsPerChild设置为0的后果
现已经改成200

PHP的unset参看:

http://www.xiangdong.org/blog/post/1520/
  今天终于解决了一个同事安装mysql的问题,在添加Mysql用户组的时候出现:
bash: groupadd: command not found

刚开始拉到百度去一搜, 发现提问的人蛮多的,但真正回答的很少,或根本就是错的,呵呵
回答的多说是PATH有问题,但有什么问题呢?
原来,groupadd命令是要用ROOT用户来执行的,而出错的用户是用 su root切换到ROOT用户下,这个命令不会把环境带过去!!!!, 要用 su - root 命令
一般我们是给了sudo -s的权限了,但是我们不知道root的密码:
[xiangdong2@101/udp ~]$ su - root
Password:

于是我们得这样来添加groupadd命令:


[xiangdong2@101/udp ~]$ whoami
xiangdong2
[xiangdong2@101/udp ~]$ sudo -s
[root@101/udp ~]# su - root
[root@101/udp ~]# groupadd mysql

即可,要是找不到groupadd 命令:
[root@101/udp ~]# whereis groupadd
groupadd: /usr/sbin/groupadd /usr/share/man/man8/groupadd.8.gz
[root@101/udp ~]# /usr/sbin/groupadd mysql

即可。。。
完成升级博客2.1.0到2.1.1。。。
        虚拟机中的串口连接可以采用两种方法。一种是指定虚拟机的串口连接到实际的COM上,例如开发机连接到COM1,目标机连接到COM2,然后把两个串口通过串口线相连接。另一种更为简便的方法是:在较高一些版本的VMware中都支持把串口映射到命名管道,把两个虚拟机的串口映射到同一个命名管道。例如,在两个虚拟机中都选定同一个命名管道 \\.\pipe\com_1,指定target机的COM口为server端,并选择"The other end is a virtual machine"属性;指定development机的COM口端为client端,同样指定COM口的"The other end is a virtual machine"属性。对于IO mode属性,在target上选中"Yield CPU on poll"复选择框,development机不选。
不知道为什么我的fedora 9 下没有以前那个可以选择抓图模式设定延时的抓图工具了,只有一个gnome ScreenShot,按PrtScr 抓全屏,按Alt+PrtScr 抓当前窗口。可我想弄复杂一点的就不行了。所以只能装了一个 scrot,scrot 是个命令行截图工具,小巧灵活,功能强悍。scrot 的常用用法如下:


抓取整个桌面:scrot desktop.png,该命令将当前的整个桌面抓取下来,并保存为 desktop.png 文件。可以在当前的目录中找到此图像文件。
抓取窗口:scrot -bs window.png,选项 b 使 scrot 在抓取窗口时一同将外边框抓取下来,而 s 选项则让用户选择所要抓取的是何窗口。
抓取区域:scrot -s rectangle.png,在执行此命令后,使用鼠标拖曳的矩形区域将被 scrot 抓取下来。
延时抓取:scrot -cd 10 menu.png,此命令中的 d 选项用于延时抓取图像,其后的 10 代表延时 10 秒;前面的选项 c 显示倒计时。在抓取菜单或是命令提示时,该技巧将充分展示其魔力。
生成缩图:scrot -t 50% thumb.png,这个命令在抓取图像的同时生成该图像的缩略图。选项 t 将打开此功能,其后的 50% 为原图的缩放百分比。
更改品质:scrot -q 70 quality.jpg,此命令中的 q 选项用于更改所抓图像的品质,其数值介于 1-100 之间,默认为 75。数值越大,意味着图像品质越高;同时,图像的压缩率也就越低,占用空间越大。
操作抓图:scrot action.png -e 'mv $f ~/images/',该命令将抓取的图像移动到 ~/images/ 目录。显然,操作图像的功能由 e 选项开启,其中的 $f 代表原图的路径/文件名。
基本上上面这些用法能解决绝大多少抓图任务了,如果你还有什么特殊要求可以自己 man 一下。
这世上有些东西,最好别看透,留几分神秘,留一点朦胧,留一丝悬念,可能会更有意思些。

    魔术,如果让观众看透了手法,知道了诀窍,这门艺术也就寿终正寝了;变脸,正因为迄今为止大伙都没有看透其技术真相,才能屡演屡新,大受欢迎,成为国粹。

    交朋友,各有目的,或为友谊,志同道合;或为利益,互相利用;或为酒肉,吃喝为乐,都能好得兄弟一般。但如果以鹰隼般犀利的眼神,看透每一个朋友的交友动机,你可能就成了孤家寡人,因为“人至察则无徒”。毕竟,管鲍之交,少如凤毛麟角;琴台知音,更是旷古罕见。怪不得胡适有言:“做学问要在无疑处有疑,交朋友要在有疑处不疑。”当然,也不能糊涂到朋友把你卖了,你还替他数钱。阅读全文
分页: 244/326 第一页 上页 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 下页 最后页 [ 显示模式: 摘要 | 列表 ]