这是我的代码 - 我试图将一堆user_id附加到一段内容中。
if (empty($errors)) // If everything's OK.
{
foreach($_POST['userId'] as $row)
{
$query = " ('".$row[learner_id]."', '".$postId."', '".$id."' ),";
}
$query = substr_replace($query,"",-1);
$mysql_return = mysqli_query("INSERT INTO subs (userId, postId, account_id ) VALUES ".$query) or die(mysql_error());
}
会喜欢你能给予的任何帮助 - 它不起作用......
答案 0 :(得分:1)
它是如何起作用的?语法错误?默默地呕吐?你没有转发你的POST数据,所以如果其中任何一个包含至少一个单引号,那么就会在那里引起语法错误,并且让你对sql注入攻击敞开大门。
或许外键检查失败......很多可能性,但你没有给我们足够的信息来告诉我们。你得到了什么错误信息?
答案 1 :(得分:0)
好的,我看到了几个问题:
您没有使用参数或转义,让自己打开了sql注入攻击。请参阅mysqli_real_escape_string
。
你有什么可能发送到$ _POST ['userId']这会使自己成为一个数组?
除非learner_id
是常量,否则这是语法错误。如果是数组键,请将其放在引号中。
$postId
和$id
来自哪里?
答案 2 :(得分:0)
mysqli_query
的第一个参数是mysqli_connect
返回的标识符,而您只是直接给它查询。
应该是这样的,
$link = mysqli_connect("host", "user", "pass", "db");
$mysql_return = mysqli_query($link, "INSERT INTO subs (userId, postId, ac...