-4

我的查询有一些问题,有人可以帮我解决吗?

这是我的代码:

 mysql_query ("INSERT INTO categories_to_sales (sales_id, categories_id, value) VALUES ('$sale_id','$catid', '$_POST['txtCategorie_' . '$catid']') ");  

当我使用此代码时,我收到以下错误:

解析错误:语法错误,意外的 '' (T_ENCAPSED_AND_WHITESPACE),在第 91 行的 addsales.php 中需要标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING)

我认为这可能与 $_POST[] 有关。

4

3 回答 3

0

我通过将查询更改为:

  mysql_query("INSERT INTO categories_to_sales (sales_id, categories_id, value) VALUES ('$sale_id','$catid', '" . $_POST['txtCategorie_' . "$catid"] . "' )");                     
于 2013-10-14T14:58:24.267 回答
-1

这是您处理 $_POST 的报价问题(正如您所怀疑的那样)。尝试这个:

mysql_query ("INSERT INTO categories_to_sales (sales_id, categories_id, value) VALUES ('$sale_id','$catid', '".$_POST['txtCategorie_' . $catid]."') ");

请注意 $_POST 部分周围添加的引号。

正如其他评论中提到的,您确实应该转义 $_POST 值,以及使用 mysqli 而不是 mysql。

更好的是这样的:

$sql = "INSERT INTO categories_to_sales
          (sales_id, categories_id, value)
        VALUES
          ('".mysqli_real_escape_string($db, $sale_id)."',
           '".mysqli_real_escape_string($db, $catid)."',
           '".mysqli_real_escape_string($db, $_POST['txtCategorie_' . $catid])."');";

mysqli_query($db, $sql);
于 2013-10-14T14:25:59.620 回答
-2

这应该有效(并且有点崩溃):

版本 1,如果“_”是您的帖子参数名称的一部分:

$value  = $_POST['txtCategorie_']; 
$value .= $_POST['$catid'];

$query  = "INSERT INTO categories_to_sales (sales_id, categories_id, value) VALUES
('$sale_id','$catid', '$value');

$result = mysql_query ($query);

版本 2,如果“_”不是您的帖子参数名称的一部分,并且应该只是附加到您的值

$value  = $_POST['txtCategorie'];
$value .= "_"; 
$value .= $_POST['$catid'];

$query  = "INSERT INTO categories_to_sales (sales_id, categories_id, value) VALUES
('$sale_id','$catid', '$value');

$result = mysql_query ($query);

但是正如评论中提到的,你应该阅读一些关于 SQL 注入和安全性的讲座。

于 2013-10-14T14:26:56.350 回答