Zend 和 oracle 序列

发布于 2024-10-20 18:30:56 字数 607 浏览 7 评论 0原文

我正在尝试向 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

余罪 2024-10-27 18:30:56

这样做怎么样:

$sql = 'insert INTO EMPLOYEES (ID, LOGIN, PASSWORD) VALUES (RK.EMP_SEQUENCE.NEXTVAL,  :login, :pass)';

现在只需绑定登录名和密码并执行即可。

How about just do this:

$sql = 'insert INTO EMPLOYEES (ID, LOGIN, PASSWORD) VALUES (RK.EMP_SEQUENCE.NEXTVAL,  :login, :pass)';

Now just bind the login and password and execute.

晒暮凉 2024-10-27 18:30:56

您可以告知 Zend 您的序列的名称是什么:

<?php
class A extends Zend_Db_Table_Abstract
{
    protected $_sequence = 'RK.EMP_SEQUENCE';
    ....

You can inform Zend what is the name of your sequence:

<?php
class A extends Zend_Db_Table_Abstract
{
    protected $_sequence = 'RK.EMP_SEQUENCE';
    ....
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文