0

具体的な 5 単一ページ内の DB にいくつかの値を挿入しようとすると、構文が間違っていることがわかります。私は彼らのウェブサイトにあったものに行ったので、構文がどこで間違っているのかわかりません。私のコードは以下です。

<?php defined('C5_EXECUTE') or die("Access Denied.");
$db = Loader::db();
$quantity = $_POST['quantity'];
$product = $_POST['product'];
$vendor = $_POST['vendor'];
$address = $_POST['address'];
$user = $_POST['userName'];
$costcenter = $_POST['costCenter'];
$index = 0;

foreach($quantity as $info){
$num = mysql_real_escape_string($quantity[$index]);
echo "$num";
echo "</br>";
$item = mysql_real_escape_string($product[$index]);
echo "$item";
echo "</br>";
$company = mysql_real_escape_string($vendor[$index]);
echo "$company";
echo "</br>";
$shipping = mysql_real_escape_string($address[$index]);
echo "$shipping";
echo "</br>";
$person = mysql_real_escape_string($user);
echo "$person";
echo "</br>";
$center = mysql_real_escape_string($costcenter);
echo "$center";
echo "</br>";

                $sql = "INSERT INTO Orders (quantity,orderItem,vendor,shippingAddress,userName,costCenter) VALUES $num,$item,$company,$shipping,$person,$center";
                $db->Execute($sql);


$index++;

    }   

?>
4

3 に答える 3

0

値を括弧で囲みます

$sql = "INSERT INTO Orders (quantity,orderItem,vendor,shippingAddress,userName,costCenter) VALUES ($num,$item,$company,$shipping,$person,$center)";
于 2013-09-26T19:09:15.103 に答える
0

値の後の変数を括弧で囲む必要があります。例:

INSERT INTO Orders (col1, col2, col3) VALUES ("value1", "value2", "value3")
于 2013-09-26T19:09:22.467 に答える
0

実際には2つの問題があります。まず、VALUES リストを括弧で囲む必要があります。2 番目の問題は、値が引用符で囲まれていないことです。したがって、SQL がダンプされると、文字列を直接リストに入れていることになります。数値を期待しているが、文字列の挿入に失敗する場合は、これを回避できます。

$person = '"' . mysql_real_escape_string($user) . '"';

それを入力に追加してみてください。うまくいくと思います。

于 2013-09-26T19:14:52.967 に答える