截止0109为止最新版本tp(含github)上的Oracle驱动问题

浏览:769 发布日期:2015/01/09
3.2.3 - 严重 - 未处理
在oracle下,所有涉及insert into的语句均会报ORA-01008: not all variables bound,经过测试,在Oracle.class.php中重写抽象类的execute方法,为了实现获取最后插入的ID,在execute中用$flag进行标记是否有对应的序列(55行),并为了给flag赋值进行了query查询(58行),而query查询会重新覆盖当前driver对象的变量queryStr,造成insert into 语句未执行前就被替换成了select语句。
临时解决方案是注释掉Oracle.class.php的55-59行,86-88行,将获取最后插入的ID这个功能取消掉就行了。
值得一说的是,用oracle并不一定用序列表示表主键,会有另外一批人热衷用GUID,而oracle的数据驱动类明显没考虑周全,也没进行充分测试就提交代码了。
希望tp越走越健康。
评论()
后面还有条评论,点击查看>>