多行保存到DB表

时间:2015-11-06 12:23:24

标签: php mysql

我必须将多行数据保存到数据库表中。

我为此编写了这段代码。但是当我运行此代码时,两行将保存到两行db表中,但每隔一行与最后一行数据相同。

即。这是最后一行数据覆盖其他所有行数据。

$(".col-80").width = initialW - 110;

2 个答案:

答案 0 :(得分:1)

您没有在循环内重置值数组,因此值[0]和值[1]将始终具有第一个值。

if (isset($_POST['sub_save'])) {
    $row_count = $_POST['rowcount'];

    while ($row_count > 0) {
        $values = array();
        for ($r = 1; $r <= 2; $r++) {
            $val = $_POST['txt'.$row_count.$r];
            $values[] = $val;
        }

        $row_count = $row_count - 1;
        $sql = "insert into timesheet_entry (name, address) values ('$values[0]', '$values[1]')";

        if (mysql_query($sql)) {
            echo "inserted";
        } else {
            echo "fail";
        }
    }
}

在旁注中,我建议调查PDO扩展和参数化查询,因为不推荐使用mysql_,上面的代码容易受到SQL注入攻击

答案 1 :(得分:0)

您正在混合mysqlmysqli

$conn = mysqli_connect("localhost", "root", ""); 
$db = mysqli_select_db("dbname");

if (mysqli_query($sql)) {
   echo "inserted";
} else {
   echo "fail";
}