0

所以我试图让这个网站接受文本文档给它的值并将它们放入 mySQL 数据库中。我在我的 php 中运行的代码没有给我任何语法错误,但是这些值没有添加到数据库表中。

 $upload = new mysqli('localhost', 'uMoviesRoot', $_POST['password1']);

if (mysqli_connect_errno()) {
 echo "There as an error.";
 }

 else {
 mysql_select_db("localhost");
 $file= fopen($_FILES['Upload']['tmp_name'], 'r');

 while(! feof($file)){


$line = fgetcsv($file, 999);
if ($line[0] == "movie") {
    mysql_query("INSERT INTO movies (movie, year) VALUES ($line[1], $line[2])");    
    $movieCount++;
    $lastMovie = $line[1];

}

只是一些背景知识,我在 mySQL 中创建了表(使用 MySQL 工作台)并制作了一个名为 movies 的模式。有名为 actor(2 列)、directed_by(2 列)、directors(1 列)、movies(2 列)和 perform_in(3 列)的表。我只在代码中添加了其中一个,只是为了让它更短(因为所有的 if 都做同样的事情)。

这是我的 PHP 代码的问题吗?

4

1 回答 1

1

你应该mysql_select_db("movies");localhost是你的服务器地址而不是数据库名称。

更新(不是 testet,但这应该可以):

$upload = new mysqli('localhost', 'uMoviesRoot', $_POST['password1']);

if (mysqli_connect_errno()) {
  echo "There as an error.";
} else {
  mysql_select_db("movies");
  $file= fopen($_FILES['Upload']['tmp_name'], 'r');

  while(! feof($file)){
    $line = fgetcsv($file, 999);
    if ($line[0] == "movie") {
      mysql_query("INSERT INTO movies (movie, year) VALUES ('$line[1]', '$line[2]')");    
      $movieCount++;
      $lastMovie = $line[1];
    }
  }
}

您还可以输出mysql_error以查看错误。

如果您有来自用户输入的值,则应该查看Prepared Statements以避免 SQL 注入等。

于 2012-04-22T10:13:10.553 回答