如何解码php中另一个函数中编码的函数中的数组?

如何解码php中另一个函数中编码的函数中的数组?,php,function,Php,Function,我在一个函数中对$result进行了编码,并尝试解码并与另一个函数中的条件匹配。代码如下: function postOperation(){ include("function/db.php"); $name = $_POST['name']; $mfsname = $_POST['mfsname']; $mfsnumber = $_POST['mfsnumber']; $amount = $_POST['amount']

我在一个函数中对$result进行了编码,并尝试解码并与另一个函数中的条件匹配。代码如下:

function postOperation(){
    include("function/db.php");
        $name = $_POST['name'];
        $mfsname = $_POST['mfsname'];
        $mfsnumber = $_POST['mfsnumber'];
        $amount = $_POST['amount'];
        $pin_no = $_POST['pinno'];

        $insert_info = "insert into table_name(name, mfs_name, mfs_number, amount, pin_no) 
        values('$name', '$mfsname', '$mfsnumber', '$amount', '$pin_no')";

        $success=0;
        $insert_final = mysqli_query($conn,$insert_info);
        if($insert_final){
           $success=1;
           $result["success"]=$success;
        }
        json_encode($result);
}

function getOperation(){
        $array = json_decode($result, true);
        if($array["success"] == 1){
           echo "<script>alert('Transaction successful!')</script>";
        }

}
函数操作后(){
包括(“function/db.php”);
$name=$_POST['name'];
$mfsname=$_POST['mfsname'];
$mfsnumber=$_POST['mfsnumber'];
$amount=$_POST['amount'];
$pin_no=$_POST['pinno'];
$insert_info=“插入表格名称(名称、制造商名称、制造商编号、金额、pin编号)
值(“$name”、“$mfsname”、“$mfsnumber”、“$amount”、“$pin_no”);
$success=0;
$insert\u final=mysqli\u查询($conn,$insert\u info);
如果($insert_final){
$success=1;
$result[“success”]=$success;
}
json_编码($result);
}
函数getOperation(){
$array=json_decode($result,true);
如果($array[“success”]==1){
回显“警报('事务成功!')”;
}
}

存在一些逻辑错误

$success=0;
$result[“success”]=$success//我添加了这一行

并添加了一个
返回json_encode($result)

查看完整代码:

function postOperation(){
        include("function/db.php");

        $name = $_POST['name'];
        $mfsname = $_POST['mfsname'];
        $mfsnumber = $_POST['mfsnumber'];
        $amount = $_POST['amount'];
        $pin_no = $_POST['pinno'];

        $stmt = mysqli_prepare("insert into table_name(name, mfs_name, mfs_number, amount, pin_no) values(?, ?, ?, ?, ?)");
        mysqli_stmt_bind_param($stmt, "ssiii", $name, $mfsname, $mfsnumber, $amount, $pin_no);

        $success=0;
        $result["success"]=$success; 
        if(mysqli_stmt_execute($stmt)){
           $success=1;
           $result["success"]=$success;
        }

        return json_encode($result);
}

function getOperation($result){
        $array = json_decode($result, true);
        if($array["success"] == 1){
           echo "<script>alert('Transaction successful!')</script>";
        }

}
还有一件重要的事情:您的sql语句不安全。将有SQL注入
请参阅链接:

您需要从
操作后返回
$result
,并将其传递到
getOperation
(或在两个函数中声明为全局值…)您正在体验的结果是什么?预期的结果是什么?请添加一些说明,以便其他人能够更好地帮助您没有任何效果。它将
$result
的值编码为JSON并删除编码值。您应该将其存储在变量中,或者,如果您想在函数外部访问它,则让函数返回它。您的代码容易受到SQL注入的攻击。您应该使用准备好的语句。您忘记了向函数定义中添加参数。@EI_Vanja,我已经提到了在函数
getOperation()
中为
$\u POST
硬编码一些值,因此无需将参数传递给函数
getOperation()
在您建议的答案中,您正在向它传递一个参数(
getOperation($result)
),并在函数内部使用该变量(
$array=json\u decode($result,true)
),但您没有定义使用参数的函数(
function getOperation(){
)。这将导致未定义的变量错误。
$result = postOperation(); 
getOperation($result);