2012-04-22 125 views
0

所以我试图让这个网站接受文本文档赋予的值,并将它们放到mySQL数据库中。我在php中运行的代码不会给我任何语法错误,但值不会添加到数据库表中。将文件中的值存储到mySQL数据库中

$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工作台),并提出了架构命名的电影。有表名为actors(2列),directed_by(2列),director(1列),movies(2列)和perform_in(3列)。我只在代码中加入了其中一个,使其更短(因为所有的if都做同样的事情)。

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

回答

1

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

UPDATE(不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注入等

+0

电影是架构的名称。 localhost是连接和服务器的名称。 – Kyle 2012-04-22 10:31:03

+0

对,你使用'mysql_select_db'来选择数据库模式。所以这应该是你的情况下的“电影”。 – tbraun89 2012-04-22 10:33:51

+0

感谢您的帮助。 – Kyle 2012-04-22 18:40:35

相关问题