gpt4 book ai didi

php - 带有参数的 Laravel 4 mssql 存储过程作为准备好的语句

转载 作者:行者123 更新时间:2023-12-02 07:01:03 25 4
gpt4 key购买 nike

我想将此工作查询格式化为准备好的语句:

Route::get('procedure/{adr}/{part}/{batch?}', function($adr, $part, $batch= '') {

return DB::connection('sqlconnection')->select("Procedure_Name '$adr', '$part', '$batch'");
});`

尝试了我能想到的一切,最接近的是这个。

DB::connection('sqlconnection')->select('Procedure_Name ?, ?, ?', array("'$adr'", "'$part'", "'$batch'"));

这会导致 sql 命令出错,直接在数据库上使用时效果很好。

Illuminate \ Database \ QueryException SQLSTATE[42000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'Procedure_Name'. (SQL: Procedure_Name 'VLM', '7999800', 'P20131018-29')

我做错了什么?

最佳答案

执行它们可能会遇到一些麻烦。

这里有一些选项:

DB::select('EXEC Procedure_Name ?,?,?',array($adr,$part,$batch));

或者

DB::statement('EXEC Procedure_Name' . DB::raw($adr) . ',' . DB::raw($part) . ',' . DB::raw($batch) );

而且,这是一种快速而肮脏的方式:

$db = DB::connection();

$stmt = $db->pdo->prepare("EXEC Procedure_Name ?,?,?");

$stmt->bindParam(1, $adr);
$stmt->bindParam(2, $part);
$stmt->bindParam(3, $batch);
$stmt->execute();

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

关于php - 带有参数的 Laravel 4 mssql 存储过程作为准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com