INSERT语句不起作用Concrete5

时间:2013-09-26 19:05:29

标签: php mysql concrete5

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

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

    }   

?>

3 个答案:

答案 0 :(得分:0)

将您的值包含在括号中

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

答案 1 :(得分:0)

值后面的变量需要括号。 例如:

INSERT INTO Orders (col1, col2, col3) VALUES ("value1", "value2", "value3")

答案 2 :(得分:0)

你实际上有两个问题。首先,您的VALUES列表需要用括号括起来。第二个问题是您的值不被引号括起来。因此,当您的SQL被淘汰时,您将字符串直接放入列表中。如果你期望一个数字但是字符串将无法插入,你可以侥幸逃脱。

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

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