哦,好吧,如果有人有更好的解决方案,请继续提交它,或者告诉我我的临时解决方案有什么问题。我替换所有的“?”
用“:autoparam”和参数增量创建“:autoparam0”,“:autoparam1”,“:autoparam2”等。
//Replace ? with a pseudo named parameter $newStatement = null; $parameter = 0; while($newStatement !== $statement) { if($newStatement !== null) { $statement = $newStatement; } $newStatement = preg_replace('/?/', ':autoparam'.$parameter, $statement, 1); $parameter++; } $statement = $newStatement;然后,当我收到来自PDO的绑定参数的请求时,我会检查该参数是否为数字。据我所知,在大多数语言中,数字索引是无效的标识符,因此,至少对于我的PDO
Userspace驱动程序,我可以放心地假设我可以将数字参数名称替换为:
//Replace the first @oci8param to a pseudo named parameter if(is_numeric($parameter)) { $parameter = ':autoparam'.$parameter; }它现在可以使用,我需要对laravel进行更多测试,以查看问题是否以不同的分数出现,但是到目前为止,看来还可以…



