2015-08-10 5 views
0

Я пытаюсь удалить jpg. Путь к этому изображению сохраняется в базе данных под именем поля PandFoto3. После этого я очищаю поле в базе данных. До сих пор у меня есть следующий код:Unlink jpeg-файл, когда путь URL-адреса предоставляется значением базы данных mysql

if(isset($_POST['F3Verwijderen'])) 
    try 
    {    

     //delete the file 
     $sql = "SELECT PandFoto3 FROM tblpand WHERE `PK_Pand` = '".$pandid."'"; 

     $con = mysql_connect('immocorbati.be.mysql', 'immocorbati_be', 'zx4ge6ty'); 
     if (!$con) { 
     die('Could not connect: ' . mysql_error()); 
     } 
     mysql_select_db("immocorbati_be"); 
     $result = mysql_query($sql, $con); 
     while ($row = mysql_fetch_array($result)) { 
      if(file_exists($row['PandFoto3'])){ 
       unlink($row['PandFoto3']); 
      } else { 
       echo $row['PandFoto3']; 
      } 
     } 
     //delete the value from the field PandFoto3 
     mysql_query("UPDATE tblpand SET PandFoto3 = NULL WHERE `PK_Pand` = '".$pandid."'"); 
     mysql_close($con);   


     header('Location: ../admin/pand-aanpassen.php?id='.$pandid); 
    } 

    catch (Exception $e) 
    { 
     $feedback = $e->getMessage(); 
    } 

Путь URL удаляется из базы данных, поэтому это работает. Однако файл не удаляется. Код действительно достигает «while ($ row = mysql_fetch_array ($ result))», но он вызывает эхо из случая else.

Это эхо в этом случае: uploadImages/picname.jpg, что является правильным путем к картинке. Тем не менее, if не запускается, и, таким образом, изображение не удаляется.

пс: я понял, что я не использовал mysqli_connect, я буду редактировать это как можно скорее

+0

идеально, пожалуйста, используйте PDO или MySQLi для расширения reason..mysql безопасности будет устаревшим PHP 5.5.0, просто еще одна причина, чтобы обновить свой код :) – Andrew

+0

использовать фактический путь фото, вероятно, фактический путь к фотографии - это не значение, хранящееся в БД, а, возможно, в другом каталоге или что-то еще –

+0

btw проверит [Dialect] (https://github.com/foo123/Dialect) инструмент построения SQL с различными функциями (ps i'm автор), конечно, существуют различные ORM и расширение PDO. Они сделают ваш код sql более правдоподобным, модульным, портативным и безопасным. –

ответ

2

использовать абсолютный путь, например,/var/www/uploadImages или D:/www/uploadImages: В этом случае ваш каталог «uploadImages» существует в том же корневом документе, что и ваш php-скрипт.

<?php 
    if(file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$row['PandFoto3'])) { 
       unlink($_SERVER['DOCUMENT_ROOT'].'/'.$row['PandFoto3']); 
      } else { 
       echo $row['PandFoto3']; 
      } 
+0

Я тоже был на этой тропе! Спасибо, что собрали его для меня. Теперь я тоже изменю mysqli, и мой код будет закончен. Редактировать: Хммм. Я думал, что это сработало, но когда я проверил его снова на второй картинке, он не дал никаких ошибок или эхо, но jpg не был удален. Если у вас есть мысли? Я тоже посмотрю на это. –

+0

Кажется, что ftp просто медленный. При загрузке нового изображения он также занимает несколько минут, прежде чем он появится на ftp, однако он сразу же отображается на веб-сайте. Я проверю еще кое-что, чтобы убедиться, что это не то, что вызывает его. –

+0

Это был провал ftp. Оно работает! Спасибо. –

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

  • Нет связанных вопросов^_^