Stored procedures 在Laravel 4中使用存储过程

Stored procedures 在Laravel 4中使用存储过程,stored-procedures,laravel-4,Stored Procedures,Laravel 4,我正试图通过laravel路由从调用存储过程,但不断收到一个错误: {"error":{"type":"Illuminate\\Database\\QueryException","message":"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'emailAddress' in 'field list' (SQL: CALL getLibraryList(emailAddress))", 我相信我打的电话是正确的: $resu

我正试图通过laravel路由从调用存储过程,但不断收到一个错误:

{"error":{"type":"Illuminate\\Database\\QueryException","message":"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'emailAddress' in 'field list' (SQL: CALL getLibraryList(emailAddress))",
我相信我打的电话是正确的:

$result = DB::statement('CALL getLibraryList('.$email.')');
return $result;

您可能会发现执行它们时遇到一些麻烦。以下是一些选项:

DB::statement(DB::raw('CALL getLibraryList('.$email.');'));

还有,最脏的一个:

$db = DB::connection();

$stmt = $db->pdo->prepare("CALL getLibraryList(?)");

$stmt->bindParam(1, $email);
$stmt->execute();

$search = array();

do {
    $search = $stmt->fetchAll(PDO::FETCH_CLASS, 'stdClass');
} while ($stmt->nextRowset());

找到了一种使其工作的方法:


结果相同。实际上我以前也试过——虽然我以前没有分号。还是一样的结果。谢谢你的帮助@Antonio我找到了答案。:)@安东尼奥·卡洛斯·里贝罗也许你能帮我。看看这个:这不是完全有效的,因为你没有检索到一个特定的类,你会得到一个stdClass对象。如果我还有3个其他的out参数,那么我应该做的是:$result=DB::select(DB::raw(“CALL retrieve_bill_home(:user_id)”),array('user_id'=>$user_id))@也许你能帮我。看看这个:
$db = DB::connection();

$stmt = $db->pdo->prepare("CALL getLibraryList(?)");

$stmt->bindParam(1, $email);
$stmt->execute();

$search = array();

do {
    $search = $stmt->fetchAll(PDO::FETCH_CLASS, 'stdClass');
} while ($stmt->nextRowset());
$result = DB::select('call getLibraryList(?)',array($email));