Зенд и оракул - PullRequest
       33

Зенд и оракул

0 голосов
/ 08 марта 2011

Я пытаюсь вставить новый оператор в 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: неправильный номер (Вн \ Pdo_Oci \ oci_statement.c: 146)

Я не могу понять, что происходит, потому что в google буквально нет информации = ( Любой совет?

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Как насчет этого:

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

Теперь просто свяжите логин и пароль и выполните.

0 голосов
/ 20 марта 2013

Вы можете сообщить Zend, как называется ваша последовательность:

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