2013-09-25 4 views
-1

Я довольно новичок в программировании на PHP, и я огляделся, но я все еще смущен. Я пытаюсь обновить путь изображения в таблице моих пользователей, и я не совсем уверен, как это сделать. Это код, который у меня есть для размещения изображения в базе данных, и он работает, чтобы вставить его, но я не уверен, как ОБНОВИТЬ путь изображения в моей базе данных, чтобы использовать вновь вставленное изображение, а не тот, который пользователь если они создали учетную запись.Обновление пути изображения

// Make sure we didn't have an error uploading the image 
($_FILES[$image_fieldname]['error'] == 0) 
or handle_error("the server couldn't upload the image you selected.", 
$php_errors[$_FILES[$image_fieldname]['error']]); 

// Is this file the result of a valid upload? 
@is_uploaded_file($_FILES[$image_fieldname]['tmp_name']) 
or handle_error("you were trying to do something naughty. Shame on you!", 
"upload request: file named " . 
"'{$_FILES[$image_fieldname]['tmp_name']}'"); 

// Is this actually an image? 
@getimagesize($_FILES[$image_fieldname]['tmp_name']) 
or handle_error("you selected a file for your picture " . 
"that isn't an image.", 
"{$_FILES[$image_fieldname]['tmp_name']} " . 
"isn't a valid image file."); 

// Name the file uniquely 
$now = time(); 
while (file_exists($upload_filename = $upload_dir . $now . 
'-' . 
$_FILES[$image_fieldname]['name'])) { 
$now++; 
} 

// Finally, move the file to its permanent location 
@move_uploaded_file($_FILES[$image_fieldname]['tmp_name'], $upload_filename) 
or handle_error("we had a problem saving your image to " . 
"its permanent location.", 
"permissions or related error moving " . 
"file to {$upload_filename}"); 

$insert_sql = "UPDATE users set user_pic_path WHERE user_id = $user_id = 
replace(user_pic_path, '$upload_filename', '$upload_filename'); 

//insert the user into the database 
mysql_query($insert_sql); 
</code> 

EDIT:. я пропускал ", который я установил и теперь нет ошибок SQL, он помещает изображение в базу данных, но не заменяет путь изображения в базе данных я баловаться с ? за $ insert_sql, но он по-прежнему не обновляет базу данных с помощью нового пути изображения, что я могу сделать Вот мой новый код обновления:

<code> 
$insert_sql = "UPDATE users WHERE user_id = $user_id set user_pic_path = 
replace(user_pic_path, '$upload_filename', '$upload_filename')"; 
</code> 
+0

Итак, у вас нет навыков планирования или кодирования, не так ли? Готов поспорить, есть документация, из которой вы получили этот код. – djot

+1

Как вы думаете, 'user_pic_path' означает? – djot

+0

У меня есть некоторые навыки кодирования, я просто относительно новичок в PHP и придерживаюсь этого. И я не уверен, что положить в $ insert_sql, чтобы он обновил путь изображения в базе данных. Он отлично работает, чтобы поместить изображение в базу данных, но он не заменяет путь, и это то, что я ищу. – nikito2003

ответ

-1

В заключительных строках, вставить тест вашего SQL:

$insert_sql = "UPDATE users WHERE user_id = $user_id set user_pic_path = replace(user_pic_path, '$upload_filename', '$upload_filename')"; 

// check the query 
echo $insert_sql."<br />"; 

//insert the user into the database 
mysql_query($insert_sql); 

Затем вы можете просмотреть запрос, который должен выполнить, протестировать его в PHPMyAdmin, выяснить, каким он должен быть. Это стоит делать и для других ключевых переменных. Еще лучше, вы должны написать функцию «отладки», которая регистрирует, что происходит в файле на сервере, чтобы при возникновении ошибки вы могли отслеживать ее детали, включая значения ключевых переменных в каждом файле.

+0

Я все еще получаю ошибку SQL/Internal Server. Я думаю, что моя проблема - это код обновления, но я не уверен, как его изменить, чтобы заставить его работать. – nikito2003

+0

Спасибо за вашу помощь, я это понял. – nikito2003

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