【发布时间】:2023-04-04 21:18:01
【问题描述】:
我在使用存储过程时遇到问题。调用存储过程对我不起作用。所以我用一条sql语句替换了存储过程。但是现在,我有一些接收参数的存储过程。例如
CREATE PROCEDURE get_category_details_proc(IN incat_id INT)
BEGIN
SELECT name, desc
FROM category
WHERE cat_id = incat_id;
END
如何使用简单的 sql 语句来替换它?
更多详情请查看my previous question。
我的数据库连接类中已经有了这个功能:
public static function GetRow($sqlQuery, $params = null, $fetchStyle = PDO::FETCH_ASSOC)
{
$result = null;
try
{
$database_handler = self::GetHandler();
$statement_handler = $database_handler->prepare($sqlQuery);
$statement_handler->execute($params);
$result = $statement_handler->fetch($fetchStyle);
}
catch(PDOException $e)
{
self::Close();
trigger_error($e->getMessage(), E_USER_ERROR);
}
return $result;
}
在我实际调用存储过程的另一个类中:
public static function GetCategoryDetails($categoryID)
{
$sql = CALL get_category_details_proc(:category_id);
$params = array(':category_id' => $categoryID);
return DatabaseHandler::GetRow($sql,$params);
}
【问题讨论】: