请看下面的代码:
<?phprepuire "DB.php";
/*...省略了一些无关代码...*/$dsn='mysql://root@localhos/table';
$db=& DB::connect( $dsn );
if( PEAR::isError( $db ) ){dir($db->getMessage());}$sth=$db->prepare('INSERT INTO table Values (0,?,?,?,?)');
$db->execute($sth,array($a1,$a2,$a3,$a4));?>由于DB.php文件丢失了,所以问题就来了。
我一直用一些通用的方法连接数据库,就是把连接代码写进一个文件,用的时候include进来就行了。而这种连接方法显然是写了一个连接类,我不会。
& DB::connect这一行,&是什么意思?后面接的DB是类名吗?&和DB之间有个空格,DB和connect之间用两个冒号,这些请高手讲解一下。
如果可能就把这段代码都讲解一下。包括后面$db->execute这种用法。
由这种用法,哪位能把DB.php文件内容猜出来,那就非常感谢了。
<?phprepuire "DB.php";
/*...省略了一些无关代码...*/$dsn='mysql://root@localhos/table';
$db=& DB::connect( $dsn );
if( PEAR::isError( $db ) ){dir($db->getMessage());}$sth=$db->prepare('INSERT INTO table Values (0,?,?,?,?)');
$db->execute($sth,array($a1,$a2,$a3,$a4));?>由于DB.php文件丢失了,所以问题就来了。
我一直用一些通用的方法连接数据库,就是把连接代码写进一个文件,用的时候include进来就行了。而这种连接方法显然是写了一个连接类,我不会。
& DB::connect这一行,&是什么意思?后面接的DB是类名吗?&和DB之间有个空格,DB和connect之间用两个冒号,这些请高手讲解一下。
如果可能就把这段代码都讲解一下。包括后面$db->execute这种用法。
由这种用法,哪位能把DB.php文件内容猜出来,那就非常感谢了。
if( PEAR::isError( $db ) ){dir($db->getMessage());}
这一句的判断不明白。PEAR是个什么东西?
至于两个冒号,看看
两个冒号(::)是对类中的方法的静态引用
也就是不需要实例化对象,直接通过类名对类中的方法进行引用
http://pear.php.net/PHP PEAR中文站
http://www.pearchina.com/PHP PEAR手册
http://pear.phpv.net/cn/用PEAR来写你的下一个php程序
http://www.ibm.com/developerworks/cn/linux/sdk/php/pear1/
DB是类名 ::表示connect是一个静态方法 execute 是执行语句boolean PEAR::isError (mixed $data [, mixed $msgcode])
描述
isError()检测一个变量是否是 PEAR_Error 对象语句中的问号 占位