高手进来讨论讨论!
PHP5加进了MySQLi,我相信大家都知道,mysqli可以存储查询语句,还可以绑定变量如$st=$oMysqli->prepare("insert into table values (?,?,?)");
$st->bind_param("iss",$no,$name,$addr);
这样,就绑定了三个变量,它们按顺序替代到"?"中,我相信大家都知道,所以就不多说.
我就是想写一个这样的类,但在提供bind_param这个方法却无法达到Mysqli的效果.首先,参量数量不定,这可以用func_get_args()来实现,但如何引用绑定的变量到类中的属性数组呢?还有一个问题,如果在调用bind_param前,没有定义$no,$name,$addr,程序会报错.但如果在类中,bind_param的方法是这样写的,如:
public function bind_param($sType,&$param1,&$param2,&$param3){}
这样,就算在调用这个方法前,变量$no,$name,$addr没有定义,也不会报错,可以在调用这个方法后,再改变$no,$name,$addr的值,类中的引用也就跟着改变了.
但这样的话,bind_param的参数就固定了,就不能起到可变数量的参数的调用,因此我想用create_function来动态创建一个bind_param方法,这样就可以根据要绑定的变量的多少来生成参数列表!但失败了!我的试验代码如下:
<?php
class test {
public $binding;
function __construct() {
$this->binding=create_function('$a','echo $a;');
}
}
$o=new test;
$o->binding("test");
?>
就这样,但不能实现,所以在此请教各位高手,有什么更好的解决方法!谢谢