使用php运行mysql存储过程

时间:2016-08-17 18:17:04

标签: php mysql stored-procedures

Capture of the mysql stored procedure您好,我正在尝试运行名为' 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
}

您有什么建议可以解决这个问题吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

您有两种选择:

  1. 使用@作为前缀正确设置会话变量:

    $mysqli->query("SET @p_Techname = '" . $title . "'");
    $mysqli->query("SET @p_Value = '" . $value ."'");
    
  2. 使用值而不是变量调用存储过程:

    $mysqli->query("CALL sp_tbl_prototype_edit ('" . $title . "', '" . $value ."')")