所以我有这个代码。
while($counter < $i){
$link = new mysqli('localhost', 'root', '', 'domaci2');
$query = 'INSERT INTO utisci VALUES(?,?,?,?,?,?)';
$statement = $link->prepare($query);
$statement->bind_param("isssis", $id, $grad, $ime, $opis, $ocena, $tagovie[$counter]);
$statement->execute();
mysqli_close($link);
$counter++;
}
我想要做的是在这个while循环中向我的数据库添加多行。你可以看到一切都保持不变,唯一改变的是$ tagovie [$ counter]变量,它应该在evey下一循环中有所不同。
但我只在我的数据库中保存了一行,第一行完全保存。其他人只是被忽视了。
我想知道有什么方法可以做到这一点或修改我的代码。
提前致谢。
我也尝试了这个代码,它是相同的
$link = new mysqli('localhost', 'root', '', 'domaci2');
$query = 'INSERT INTO utisci VALUES(?,?,?,?,?,?)';
$statement = $link->prepare($query);
while($counter < $i){
$statement->bind_param("isssis", $id, $grad, $ime, $opis, $ocena, $tagovie[$counter]);
$counter++;
}
$statement->execute();
mysqli_close($link);
答案 0 :(得分:1)
您应该在循环外部打开和关闭数据库连接。这同样适用于准备声明,您只需准备一次。
您的问题可能是由您绑定变量的方式引起的:
$statement->bind_param("isssis", $id, $grad, $ime, $opis, $ocena, $tagovie[$counter]);
^^^ this would be the problem
我认为第一列--ID - 具有唯一约束,所以在第一次插入后,所有后续插入都将失败,因为ID在循环中不会改变。
似乎没有必要一次又一次地添加相同的行只有很小的变化,你应该好好看看你的表结构和数据库规范化。