您好,我正在尝试运行名为' sp_tbl_prototype_edit'
的mysql存储过程此存储过程有两个参数:
p_Techname(VARCHAR(10))
p_Value(INT)
下面的PHP函数看起来不会保存(编辑数据库中的值)我想要的值。
function edit_record($title, $value){
// Prepares IN parameters
$mysqli->query("SET p_Techname = '" . $title . "'");
$mysqli->query("SET p_Value = '" . $value ."'");
// Call stored procedure
if(!$mysqli->query("CALL sp_tbl_prototype_edit (@p_Techname, @p_Value)"))
{
if($mysqli) $mysqli->close(); // Close DB connection
//header('Location: error.php?error=QueryFailure');
die();
}
if($mysqli) $mysqli->close(); // Close DB connection
}
您有什么建议可以解决这个问题吗?非常感谢。
答案 0 :(得分:0)
您有两种选择:
使用@
作为前缀正确设置会话变量:
$mysqli->query("SET @p_Techname = '" . $title . "'");
$mysqli->query("SET @p_Value = '" . $value ."'");
使用值而不是变量调用存储过程:
$mysqli->query("CALL sp_tbl_prototype_edit ('" . $title . "', '" . $value ."')")