2012-04-22 11 views
0

私は、このWebサイトにテキスト文書によって与えられた値を取り込み、それらを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でテーブルを作成し、映画という名前のスキーマを行いました。 actor(2列)、directed_by(2列)、director(1列)、movies(2列)、performed_in(3列)という名前のテーブルがあります。私はこれらの追加のうちの1つをコードに入れて、それを短くします(すべての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はエラーを表示することができます。

あなたがユーザーの入力から値を持っている場合は、SQLインジェクションを防ぐためにPrepared Statementsを見ている必要がありますが、その他

+0

作品は、スキーマの名前です。 localhostは接続とサーバーの名前です。 – Kyle

+0

右、 'mysql_select_db'を使ってデータベーススキーマを選択します。あなたの場合、これは映画でなければなりません。 – tbraun89

+0

助けてくれてありがとう。 – Kyle

関連する問題