|
Oralce与Mysql在操作上有很大区别,比如:
- Oralce字段使用关键字时需要加引号写到SQL中,如:user,order,size等。
- Oralce没有limit而需要用numrow记录序号,如提取第三条后四数据:numrow>=3 and numrowsave( 'UPDATE: '.date('H:i:s',time()) ) ) {
//保存失败回滚
oci_rollback($conn);
die("Unable to update lob\n");
}
//保存成功提交
oci_commit(); 说明:如果使用oci函数在使用点位符时需要严格按数据类型走,否则会出错,所以使用oci_bind_by_name的方式时需要格外注意每个字段的数据类型是否匹配。
使用PDO处理:
//链接数据库
$pod=new PDO('oci:dbname=test;charset=utf8','system','admin123456');
//预处理SQL
$sth=$pod->prepare("INSERT INTO mylobs (id, mylob) VALUES (tslbh_xk.nextval, ?)");
//要写入的clob越长内容
$val='INSERT:test contents';
//绑定参数,注意当是lob类型时需要指定数据长度,否则会报错类型不对
$sth->bindParam(1, $val, PDO::PARAM_STR,strlen($val));
//执行SQL
$sth->execute() or die ("Unable to execute query\n"); 说明:使用PDO的占位符也是需要指定数据类型,默认是PDO::PARAM_STR,包含execute函数。
最后因能力有限如果文本有错还请指出!
|
|
|