2011-12-25 6 views
7

Это кодPHP функция Unlink

$query = mysql_query("SELECT avatar FROM users WHERE UserID = ".$userID.""); 
     $row = mysql_fetch_array($query); 
     $user_avatar = trim($row['avatar']); 
unlink($user_avatar); 

, но по какой-то причине я получаю это предупреждение об ошибке: Разорвать связь();

Почему $ user_avatar возвращается пустым? и если я эхо это показывает t_cabbbccebbfhdb.jpg

+0

какая ошибка у вас? Кажется, что ваше сообщение пропустило сообщение об ошибке. Действительно ли файл существует в текущем рабочем каталоге? – catchmeifyoutry

+3

Я беспокоюсь, когда вижу, что PHP-код не использует [Подготовленные формулировки PHP] (http://php.net/manual/en/pdo.prepared-statements.php), чтобы предотвратить [SQL Injection] (http: // ru. wikipedia.org/wiki/SQL_injection). Надеюсь, вы дезинфицируете свои переменные в коде, который не был вставлен здесь. Если нет, пожалуйста, подумайте о том, чтобы переписать код, чтобы использовать подготовленные заявления PDO, а не пытаться дезинфицировать ваши переменные. – sarnold

ответ

12

Разорвать связь удалить файлы, тогда как незадано для переменных.

Если переменная возвращает пустую, возможно, запрос не возвращает никаких записей. Вы пытались запустить запрос вручную?

+6

Пожалуйста, напишите полные, когерентные предложения. «Стиль письма имеет значение» - http://stackoverflow.com/questions/how-to-answer – BoltClock

+0

спасибо за информацию –

1
$query = mysql_query("SELECT avatar FROM users WHERE UserID = ".$userID.""); 
     $row = mysql_fetch_array($query); 
     $user_avatar = trim($row['avatar']); 
unset($user_avatar); 

//if you want to unlink file then 

if(!empty($user_avatar)) {  
    unlink($home.$user_avatar); // $yourFile should have full path to your file 
} 
+0

файл существует, и если я напишу $ home = $ _SERVER ['DOCUMENT_ROOT']; разъединить ($ home.'t_cabbbccebbfhdb.jpg '); работает. но если я изменю его, чтобы отменить связь ($ home. $ user_avatar); в сообщении об ошибке отображается unlick (/ home/naturecl/public_html.), а $ user_avatar - как пустой? – Ben

+0

проверить отредактированный код, вы можете использовать unlink, если $ user_avatar содержит имя файла –

+0

$ target = "$ home/img/avatars/$ user_avatar"; и если i echo $ user_avatar показывает имя файла, но в функции unlick пусто и его предупреждение: unlink (/ home/naturecl/public_html/img/avatars /) – Ben