将文件中的值存储到mySQL数据库中

时间:2012-04-22 10:09:10

标签: php mysql

所以我试图让这个网站接收一个文本文档给它的值,然后将它们压入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的模式。有些表名为actors(2列),directed_by(2列),控制器(1列),电影(2列)和perform_in(3列)。我只在代码中添加了其中一个,只是为了缩短它(因为所有的if都做同样的事情)。

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

1 个答案:

答案 0 :(得分:1)

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

更新(不是测试,但这应该有效):

$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注入等。