-3

そのため、フォームから入ってくるすべてのものをデータベースに挿入することになっているphpスクリプトがあります。私が行ったことは、すべての値を配列に格納し、テーブルに挿入しながらそれらを内破しようとしているので、一度にすべてを処理できます。

ただし、このエラーが引き続き発生し、理由がわかりません。

エラー: 'フィールド リスト' の列 'test' が不明です

起こっているように見えるのは、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 に答える