Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决php中数组到字符串的转换错误?_Php_Mysqli - Fatal编程技术网

如何解决php中数组到字符串的转换错误?

如何解决php中数组到字符串的转换错误?,php,mysqli,Php,Mysqli,当我运行这段代码时,它返回True,但同时它给出了一个数组到字符串的转换错误。我已经看到了其他答案,但是我在代码中找不到问题所在。它在查询行中给出错误 <?php $id = ['id']; $name = $_POST["name"]; $email = $_POST["Email"]; $mobile = $_POST["MobileNo"]; $password = $_POST["Password"]; $result = mysqli_query($conn, "UPDATE s

当我运行这段代码时,它返回True,但同时它给出了一个数组到字符串的转换错误。我已经看到了其他答案,但是我在代码中找不到问题所在。它在查询行中给出错误

<?php
$id = ['id'];
$name = $_POST["name"];
$email = $_POST["Email"];
$mobile = $_POST["MobileNo"];
$password = $_POST["Password"];
$result = mysqli_query($conn, "UPDATE sign_up SET full_name = '$name', email = '$email', phone_official = '$mobile', password ='$password'where idsign_up='$id'");
$res = array();

// /$res['id'] = 0;

if ($result) {
    $res['check'] = true;
    $res['message'] = 'Data Updated..';

    // /$res['id'] = mysqli_insert_id($conn);
}
else {
    $res['check'] = false;
    $res['message'] = 'There was an Errorr!';

    // /$res['message'] = $emailErr;
}

header('Content-Type: application/json');
echo json_encode($res);

首先,我建议研究PDO,因为您的脚本现在很容易受到注入攻击。

为了解决您的错误,我认为更改第一行代码同样容易。它现在说:

$id=['id'];
您可能希望有一个$\u GET或$\u POST,但在这种形式下它肯定不起作用。如果ID在URL中,我想它会变成:

$id=$_GET['id'];
如果这不能解决问题,请与行号共享错误代码


但是,再次检查PDO,因为这个脚本确实容易受到攻击。

在文章的第一行,问题是这里
$id=['id']
这里您将
$id
定义为数组其中一个输入变量是数组,而不是字符串。你需要检查,以确保你得到了你认为你是什么。此外,您还容易受到SQL注入的攻击--请查看准备好的语句。它已解决,但现在不会更新行并返回false.–无需完全切换API-
mysqli.*
也支持准备好的语句。使用没有准备语句的普通PDO并不能使它更加安全,而是准备好了占位符的语句才起作用。