2012-04-22 2 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 Workbench) и сделал схему с именем фильмы. Существуют таблицы с именами актеров (2 столбца), direct_by (2 столбца), режиссеры (1 столбец), фильмы (2 столбца) и выполненные_in (3 столбца). Я только добавил одно из этих дополнений в код, чтобы сделать его короче (так как все ifs делают то же самое).

Это проблема с моим кодом 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

+0

Правильно, вы используете 'mysql_select_db' для выбора схемы базы данных. Так что это должно быть «фильмы» в вашем случае. – tbraun89

+0

Спасибо за помощь. – Kyle

Смежные вопросы