0

我试图在一个具体的单页内将一些值插入到数据库中,它告诉我我的语法是错误的。我不确定语法在哪里出错,因为我浏览了他们网站上的内容。我的代码在下面。

<?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

你实际上有两个问题。首先,您的 VALUES 列表需要用括号括起来。第二个问题是您的值没有被引号包围。因此,当您的 SQL 被转储时,您将字符串直接放入列表中。如果您期待一个数字但字符串将无法插入,您可以摆脱这个问题。

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

尝试将其添加到您的输入中,我敢打赌它会通过。

于 2013-09-26T19:14:52.967 回答