-3

所以我有一个 php 脚本,它应该将通过表单输入的所有内容插入数据库。我所做的是将所有值存储在一个数组中,然后我试图在插入表时将它们内爆,这样我就可以一次处理它们。

但是我不断收到此错误,我不知道为什么:

错误:“字段列表”中的未知列“测试”

看起来正在发生的事情是 implode 函数正在释放在表单中输入的实际值(而不是列名),并且 insert 函数试图将它们插入列中,而实际上这不应该发生,因为$profileCols 只是一个表示列名的字符串数组。

有人可以帮帮我吗,在这里您可以找到表格和错误。

<?php
$profile = $_POST["profile"];
$requestedAmount = $_POST["requestedAmount"];
$currentBalance = $_POST["currentBalance"];
$creditScore = $_POST["creditScore"];
$timeInBusiness = $_POST["timeInBusiness"];
$avgMonthly = $_POST["avgMonthly"];
$noBankDeposits = $_POST["noBankDeposits"];
$avgBalance = $_POST["avgBalance"];
$monthlyNSF = $_POST["monthlyNSF"];
$industryType = $_POST["industryType"];
$endingBalance = $_POST["endingBalance"];

$profileValues = array("$profile", "$requestedAmount", "$currentBalance",       "$creditScore", "$timeInBusiness", "$avgMonthly", "$noBankDeposits", "$avgBalance", "$monthlyNSF", "$industryType", "$endingBalance");

 $profileCols = array('profile', 'requestedAmount', 'currentBalance', 'creditScore', 'timeInBusiness', 'avgMonthly', 'noBankDeposits', 'avgBalance', 'monthlyNSF', 'industryType', 'endingBalance');

if (isset($profileValues))
{
$entry = 'INSERT INTO profileBuilder (' . implode(",", $profileCols) .') VALUES (' . implode (",", $profileValues) . ')';
} else {
echo "failure buddy!";
}

if (!mysqli_query($con,$entry))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";

mysqli_close($con);
?>
4

1 回答 1

0

您需要检查/转义进入查询的所有数据。使用 mysqli_real_escape_string()。您可以将它与 $_POST 变量上的 array_map() / array_walk() 一起使用。如果您的任何值是文本,则需要引用它们:

VALUES (\'' . implode ("','", $profileValues) . '\')';
于 2013-10-09T20:49:52.210 回答