core::prepare
(CoreMVC 1.0)
core::prepare — 准备和拼装SQL语句
◎描述
mixed core::prepare ( string $sql [, array $param = null [, bool $format = null [, bool $debug = null [, string $output = null [, array $extra = null ] ] ] ] ] )
mixed core::prepare ( string $flag [, array $array = null [, bool $format = null [, bool $debug = null [, string $output = null [, array $extra = null ] ] ] ] ] )
该方法可以准备和拼装SQL语句,同时支持数据库调试功能。
◎参数
sql
要执行的SQL语句,支持问号形式的占位符。
param
配合SQL语句和占位符对应的参数数组。
format
是否需要返回格式化的SQL语句,如果是则将参数数组填充到占位符中去,返回的是完整的SQL语句。
debug
是否要调试数据库,如果是则会打印SQL语句,包括参数等。
output
调试时要写入的文件,默认是页面上显示而不写入文件。
extra
调试时需要输出的其他变量,包括错误编号、错误信息等。
flag
合成SQL语句的标识,包括“selects”、“mysql_inserts”等。
array
合成SQL语句时传入的数组参数,当标识和数据库静态方法相对应,该参数为四个参数的数组。
◎返回值
如果格式化参数为真,则返回SQL字符串。默认或为假是返回由SQL语句和参数组成的数组。
◎例子
准备语句的使用方法
《test.php》
<?php
// 获得SQL语句和参数
list($sql,$param) = core::prepare('selects',array($field,$table,$where,$other));
// 获得不带参数的SQL语句
$sql = core::prepare('selects',array($field,$table,$where,$other),true);
// 获得子句
$sql = core::prepare('field',array('col1','col2'),true);
// 调试SQL语句
core::prepare('SELECT ?,?',array(1,'a'),null,true); //页面显示SQL语句
core::prepare('SELECT ?,?',array(1,'a'),null,true,'db.log'); //将SQL语句写入文件
core::prepare('SELECT ?,?',array(1,'a'),null,true,null,array('errno'=>mysql_errno($dbh),'error'=>mysql_error($dbh))); //同时显示错误信息
?>