PHP“;注意:数组到字符串的转换;插入到SQL时出错

PHP“;注意:数组到字符串的转换;插入到SQL时出错,php,insert,Php,Insert,我正在尝试向表中插入一些值,但我一直收到以下通知: 注意:第10行C:\Program Files\wamp\www\process\u invitation.php中的数组到字符串转换 第10行是以下代码中的插入行: if ((isset($_POST['inviter'], $_POST['opponent'])) && ($_POST['inviter'] != '' && $_POST['opponent'] != '' )) { $inviter

我正在尝试向表中插入一些值,但我一直收到以下通知:

注意:第10行C:\Program Files\wamp\www\process\u invitation.php中的数组到字符串转换

第10行是以下代码中的插入行:

if ((isset($_POST['inviter'], $_POST['opponent'])) && ($_POST['inviter'] != '' && $_POST['opponent'] != '' )) {
    $inviter = $_POST['inviter'];
    $opponent = $_POST['opponent'];
    $now = time();
    if ($mysqli->query("INSERT INTO invitations (inviter_user_id, invited_user_id, time) VALUES ('$inviter','$opponent','$now')")) {
        return;
    }
}

您是否尝试过使用var_转储$inviter和$oppost来查看它们是什么数据类型?试着把它们也扔到绳子上。另外,在mysqli中使用参数化查询也是一个好主意。就目前而言,您将对SQL注入敞开大门。

打印变量的输出&您将知道问题出在哪里:

print_r($inviter);
print_r($opponent);

请确保在插入mysql之前从数组中提取值。

什么类型是邀请者和反对者?请将查询放入字符串中,并在通过mysqli运行之前进行回显。它显示了什么?无论是
$\u POST['inviter']
还是
$\u POST['opporter']]
都是一个数组而不是字符串。我认为您已经有了很好的建议来找到问题的根源,所以我将添加另一个不相关的建议。不要使用unix时间戳在MySQL中存储日期/时间数据,请使用本机MySQL日期、日期时间或时间戳字段类型。我现在看到第二个参数实际上是一个
数组
,因此我将尝试更改它。您能否指定有关
参数化查询的信息
?它是什么?Thanks@SagiLow试试这个: