2013-11-21 2 views
0

его простой код. Я хочу сохранить запись в базе данных каждый раз, когда файл загружается. И когда каждый раз, когда загружается какой-либо файл, я хочу, чтобы пользователь видел все загруженные файлы в сериале из базы данных. Сохранение записи при загрузке файла работает нормально. Но проблема возникает при извлечении таблицы, содержащей всю информацию о загруженном файле.Извлечь строки, используя mysqli

//connetion code 
$con = mysqli_connect("localhost", "root", "", "sss"); 
      if (mysqli_connect_errno()) 
      { 
       printf("Connect failed: %s\n", mysqli_connect_error()); 
       exit(); 
      } 

      //file upload code 
      move_uploaded_file($_FILES["file"]["tmp_name"],"C:/xampp/htdocs/" . $_FILES["file"]["name"]); 
      mysqli_query($con, "INSERT INTO uploads (filename, uploaded_on) VALUES ('{$_FILES['file']['name']}', NOW());"); 
      echo "Stored in: " . "C:/xampp/htdocs/" . $_FILES["file"]["name"]; 








      //fetch rows 
      $result =mysqli_query($con, "select * from uploads"); 
      while ($row = mysqli_fetch_array($result)) 
       { 

       printf ("%s\n", $row); 
       } 


      mysqli_close($con); 
      } 

Я чувствую, что есть некоторые серьезные проблемы при кодировании. Это мой первый опыт работы в mysqli, прежде чем я использовал код с использованием mysql. нужна помощь, чтобы узнать фактическую проблему и решение.

Отредактировано: возвращает это,

Примечание: Массив для преобразования строки в C: \ XAMPP \ HTDOCS \ SSS \ upload_file.php на линии 68 массива

Примечание: Массив в строку преобразование в C: \ XAMPP \ HTDOCS \ SSS \ upload_file.php на линии 68 массива

Примечание: Массив для преобразования строки в C: \ XAMPP \ HTDOCS \ SSS \ upload_file.php на линии 68 Массив

, но, к сожалению, этот код является частью огромного кода. поэтому строка 68 - это строка, в которой $ result = mysqli_query ($ con, «select * from uploads»); начинается.

+1

$ row будет массивом. печать массива в контексте строки просто даст вам «Массив». Ваша загрузка загружается также БЕЗОПАСНО БЕЗОПАСНО и позволит злоумышленнику нарисовать свои файлы в любом месте на вашем сервере, помимо уязвимости для атак SQL-инъекций. Вы не могли бы написать LESS защищенный код, если бы вы пробовали. Кроме того, вы закрываете свое соединение с БД внутри цикла while, поэтому, даже если все остальное работает, вы сможете в любом случае распечатать ** ONE ** запись. –

+0

Я думаю, что я описал то, что хочу, а что - нет. пожалуйста, мой запрос, прочитайте его снова. @JohnConde – user3017315

+1

@ user3017315 - нет, вы сказали, что ваш код «не работает». Вы получаете пустой экран? Сообщение об ошибке? Не возвращает ли строки? Некоторые строки? Все строки? Печатать неправильно? Правильно, не так? Есть несколько вещей, которые могут не работать. – andrewsi

ответ

1
$result =mysqli_query($con, "select * from uploads"); 
while ($row = mysqli_fetch_assoc($result)) 
    { 
     printf ("%s\n", $row['column_name_1']); 
     printf ("%s\n", $row['column_name_2']); 
     printf ("%s\n", $row['column_name_3']); 
    } 
mysqli_close($con); 

Но вы должны серьезно подумать о безопасности вашего кода.

+0

Я не думаю, что это исправит - это будет печатать первый элемент из строки $ на первой итерации; второй элемент из строки $ на второй итерации и т. д. – andrewsi

+0

Он, по крайней мере, исправит ошибку, получая и распечатывая значения массива. – J2D8T

+0

Он выдает одно значение из каждой строки набора результатов; из разных столбцов каждый раз. Он также потерпит неудачу, если будет больше результатов, чем есть столбцы. – andrewsi

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