-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>

编辑:我错过了一个“我已修复,现在没有 SQL 错误,它将图片放入数据库但不替换数据库中的图像路径。我一直在搞乱 $insert_sql 但它仍然没有' t用新的图像路径更新数据库,我该怎么办?这是我的新更新代码:

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

1 回答 1

-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 中测试它,找出它应该是什么。其他关键变量也值得这样做。更好的是,您应该编写一个“调试”函数,记录服务器上文件中发生的事情,以便在发生错误时,您可以跟踪它的详细信息,包括每个文件中关键变量的值。

于 2013-09-25T07:02:18.490 回答