我的查询有些问题可以帮我解决一下吗?
这是我的代码:
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 []有关。
答案 0 :(得分:0)
我通过将查询更改为:
来修复查询 mysql_query("INSERT INTO categories_to_sales (sales_id, categories_id, value) VALUES ('$sale_id','$catid', '" . $_POST['txtCategorie_' . "$catid"] . "' )");
答案 1 :(得分:-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);
答案 2 :(得分:-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注入和安全性的讲座。