使用php将带有输入值的数组发送到数据库

使用php将带有输入值的数组发送到数据库,php,Php,所以基本上我似乎无法将带有输入值的数组发送到我的数据库 我试着单独发送,它可以工作,但它只发送数组或路径。没有错误 if (isset($_POST['submit'])) { $services = implode ("|", $_POST['services']); mysqli_query($mysqli, "INSERT INTO klientai (package, name, surname, email, phone, message, services) VALU

所以基本上我似乎无法将带有输入值的数组发送到我的数据库

我试着单独发送,它可以工作,但它只发送数组或路径。没有错误

if (isset($_POST['submit'])) {
    $services = implode ("|", $_POST['services']);
    mysqli_query($mysqli, "INSERT INTO klientai (package, name, surname, email, phone, message, services) VALUES('$_POST[package]', '$_POST[name]', '$_POST[surname]', '$_POST[email]', '$_POST[phone]', '$_POST[message]', '$services'");
}
mysql_查询函数是否安全,您应该使用另一个选项

您可以使用PDO,例如:

开放连接

$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
插入方法1

$sql = "INSERT INTO users (name, surname, sex) VALUES (?,?,?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$name, $surname, $sex]);
插入方法2

$data = [
    'name' => $name,
    'surname' => $surname,
    'sex' => $sex,
];

 $sql = "INSERT INTO users (name, surname, sex) VALUES (:name, :surname, :sex)";
 $stmt= $pdo->prepare($sql);
 $stmt->execute($data);
也检查和


在这种方法中,您不需要对字符串进行转义,也可以解决您的问题。

echo$services检查您得到的字符串中没有特殊字符,例如引号。数组一切正常,没有特殊字符。我似乎无法将它与其他输入相加。另外,it works.OP在代码中使用了mysqli_查询。您的代码对SQL注入不安全。您指出了最佳可用教程,但您没有使用答案中所写的内容。