0

我有一个表(使用 php 从另一个网站获取),但现在我想将它的内容导入我的数据库(而不仅仅是打印出表)。

这是使用以下代码的表格的打印输出 ( http://i.stack.imgur.com/NnbAo.png ):

<?php
$uitvoer = getTable();
echo "<table">;
foreach ($uitvoer as $row) {
    echo "<tr>";
    foreach ($row as $col) {
        echo "<td>" . $col . "</td>";
    }
echo "</tr>";
}
echo"</table>";
?>

当我尝试这个时,我的数据库没有任何反应:

<?php
$con = mysqli_connect("mysql1.000webhost.com","a2902119_lowavol","pswd")
$uitvoer = getTable();
foreach ($uitvoer as $row) {
    foreach ($row as $col) {
        $query += "'" . $col . "', ";
    }
$sql="INSERT INTO test (cel1, cel2, cel3, cel4, cel5, cel6, cel7, cel8, cel9) VALUES ($query)";
mysqli_query($con, $sql);
}
?>

我对 PHP 知之甚少。谢谢你帮助我!

4

4 回答 4

1

您的查询将如下所示:

INSERT INTO test (....) VALUES (val, val, val, )

这显然是一个语法错误......尝试将字段添加到数组中:

foreach ($uitvoer as $row) {
    $fields = array();
    foreach ($row as $col) {
        $fields[] = $col; // TODO: add escaping!
    }
// now you can build the values list with implode
$values = implode(', ', $fields);
$sql="INSERT INTO test (...) VALUES ($values)";

有关更多信息,请参阅文档。implode()

于 2013-09-19T08:34:10.123 回答
1

PHP 的连接运算符是 (.) 而不是 (+)

  <?php
    $con = mysqli_connect("mysql1.000webhost.com","a2902119_lowavol","pswd")
    $uitvoer = getTable();
    foreach ($uitvoer as $row) {
       $query = array();
       $insert = "";
       $insert_values = "";
       foreach ($row as $col) {
           $query[] = $col;
       }
       $insert_values = implode("','", $query) ;
       $insert = "'".$insert_values."'";
       $sql = "INSERT INTO test (cel1, cel2, cel3, cel4, cel5, cel6, cel7, cel8, cel9) VALUES ($insert)";
       mysqli_query($con, $sql);
  }
?>
于 2013-09-19T08:48:15.920 回答
0

使用准备好的语句:

$sql="INSERT INTO test (cel1, cel2, cel3, cel4, cel5, cel6, cel7, cel8, cel9) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = mysqli_prepare($con, $sql);
mysqli_stmt_bind_param($stmt, "sssssssss", $row[0], $row[1], $row[2], $row[3], $row[4], $row[5], $row[6], $row[7], $row[8]);
foreach ($uitvoer as $row) {
    mysqli_stmt_execute($stmt);
}
于 2013-09-19T08:39:14.083 回答
-1

尝试 echo-ing $sql。我认为最后有一个逗号。

采用

$query = substr($query, 0, strlen($query) - 1)

为了删除的最后一个字符$query

(编辑命令)

于 2013-09-19T08:37:37.693 回答