2012-04-16 2 views
0

Kohana는 PHP 프레임 워크입니다. 이 문서는 입니다. 이 프레임 워크에서 프로 시저를 호출하는 방법. 나는이 질문에 대해 조사하고 질문했다. 처럼 : insert_id in Kohana 3kohana에서 프로 시저를 호출하는 방법 3.1

이 내 코드입니다 :

$conn = Database::instance();  
$queryStr = "call sp_createUser('$nick_name','$email','$password','127.0.0.1')"; 
$query = DB::query(Database::SELECT, $queryStr); 
$query->execute($conn); 

하지만 몇 가지 예외가있다 ..

Database_Exception [ 1312 ]: PROCEDURE sp_createUser can't return a result set in the given context [ call sp_createUser('1','1','1','127.0.0.1') ] 

보인다 그 DB 연결에 문제 ..

방법 나는 그것을 고칠 수있다. .. 약간의 도움을 구한다.

답변

0

쿼리 문자열을 검사하고 버그를 찾기 위해 쿼리하기 전에 $query->compile(Database::instance);을 사용하십시오.

프로 시저 본문도 함께 보내주십시오. PROCEDURE와 같은 semms는 Kohana와 호환되지 않는 형식의 데이터를 반환합니다.

$query->compile(Database::instance); 반환 문자열은 mysql에서 직접 실행됩니까?

+0

전화 sp_createUser ('1', '1', '1', '127.0.0.1')는 .so를 잘못 아무것도 DB에 성공적으로 실행할 수 있습니다 쿼리 문자열. – user1335597

+0

아니요, PROCEDURE 내용, 코드가 –

+0

PHP에서 MySQL을 사용하기 위해 어떤 모듈을 사용합니까? mod_mysql 또는 mod_mysqli? 저장 프로 시저를 사용하려면 mod_mysqli가 필요합니다. –

-2

SELECT로 전화를 교체하려고 ...

$queryStr = "SELECT sp_createUser('$nick_name','$email','$password','127.0.0.1')"; 
+0

CALL 문 (http://dev.mysql.com/doc/refman/5.1/en/call.html) –

+1

을 사용하여 프로 시저가 호출됩니다. –