Stay hungry, Stay foolish

0%

SQL预处理已经不是什么新鲜的东西了,它可以很好的防sql注入。而ThinkPHP直到3.1中才在其orm里增加对其的支持。相关介绍在手册里的《14.3 防止SQL注入》这一节。

使用环境

where(), query(), execute()

使用方式

  • 变长参数
1
"id=%d and username='%s' and xx='%f'",$id,$username,$xx
  • 数组参数
1
"id=%d and username='%s' and xx='%f'",array($id,$username,$xx)
Read more »

自己的开发环境一直用的集成环境包xampp,如何来实现扩展的安装呢?
在网上找一篇以apc为例的文章,翻译一下安装步骤,再写写实际安装中遇到的问题:

安装步骤

  • 确保你卸载或禁用所有之前安装过的php、pecl、pear。

  • 下载安装最新的xampp。

  • (可选)添加/opt/lampp/bin到你的PATH中。

  • 下载并安装xampp开发包。(注意,这一步可能会覆盖之前安装的xampp的配置)

  • 下载要安装的扩展包。

  • 执行如下命令

1
2
3
4
5
6
sudo su
cd APC-+0.16
/opt/lampp/bin/phpize
./configure
make
make install
  • 在php.ini中添加以下几行extesnsion=”apc.so”
Read more »

PHP是解释型语言。我们写的代码都要经过php给翻译成底层可执行的代码。如果程序中有php不能解析的语句,就会报Parse error的错误。

Parse error: syntax error, unexpected T_STRING

这里的T_STRING就是一个解析代号。

解析代号表

手册里列出了诸如下面这样的对应关系表:

T_ABSTRACT abstract 抽象类(自 PHP 5.0.0 起可用)
T_AND_EQUAL &= 赋值运算符
T_ARRAY array() array(),数组语法
T_ARRAY_CAST (array) 类型转换

Read more »

环境

  • php5.2.6、apache2.2.8、mysql5.0.51b、xp(虚拟机)
  • php5.3.5、apache2.2.17、mysql5.5.8、win7

实例

外部调用

1
2
3
4
5
6
7
8
class ClassTest{
public $_publicT;
protected $_protectedT;
private $_privateT;
}

$classT = new ClassTest();
var_dump(get_class_vars(get_class($classT)));
Read more »

##需求

test.php里有一个变量$_auth = ‘222’;使其可以在另一个文件index.php里访问

1
2
3
4
5
6
7
8
9
10
11
12
function test(){
require_once 'test.php';
var_dump($_auth);
}
class Test{
static function testRequire(){
require_once 'test.php';
var_dump($_auth);
}
}
test(); //output:222
Test::testRequire(); //output:Undefined variable: _auth
Read more »