Zend 和 oracle 序列
我正在尝试向 Oracle 插入一条新语句。我的目标是创建干净的 sql 查询。
我有一个包含 ID、用户名、密码的表。 我有以下代码
$sql = 'insert INTO EMPLOYEES (ID, LOGIN, PASSWORD) VALUES (:seq, :login, :pass)';
$stmt = new Zend_Db_Statement_Pdo_Oci(Zend_Registry::get('db'), $sql);
$stmt->execute(array(':seq' => new Zend_Db_Expr('RK.EMP_SEQUENCE.NEXTVAL'),':login' => 'sss', ':pass' => 's'));
(注册表存储 oci_pdo 适配器),
但它给了我:
消息:SQLSTATE[HY000]:常规 错误:1722 OCIStmtExecute:ORA-01722: 无效号码 (ext\pdo_oci\oci_statement.c:146)
我不知道发生了什么,因为 google=( 有什么建议吗?
I'm trying to insert a new statement to Oracle. My aim is to create clean sql query.
I have a table containing ID, username, password.
I have following code
$sql = 'insert INTO EMPLOYEES (ID, LOGIN, PASSWORD) VALUES (:seq, :login, :pass)';
$stmt = new Zend_Db_Statement_Pdo_Oci(Zend_Registry::get('db'), $sql);
$stmt->execute(array(':seq' => new Zend_Db_Expr('RK.EMP_SEQUENCE.NEXTVAL'),':login' => 'sss', ':pass' => 's'));
(registry stores oci_pdo adapter)
but it gives me:
Message: SQLSTATE[HY000]: General
error: 1722 OCIStmtExecute: ORA-01722:
invalid number
(ext\pdo_oci\oci_statement.c:146)
I can't figure out what happens, because there is literally no info in google=(
Any advice?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这样做怎么样:
现在只需绑定登录名和密码并执行即可。
How about just do this:
Now just bind the login and password and execute.
您可以告知 Zend 您的序列的名称是什么:
You can inform Zend what is the name of your sequence: