更新记录:如何检查新文件是否已上传PHP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新记录:如何检查新文件是否已上传PHP相关的知识,希望对你有一定的参考价值。
我正在学习php,所以请原谅我,如果我的问题有些愚蠢。
我创建了一个表单来更新我的数据库中的记录,其中包括更改您的姓名,年龄和图像。当我在不更改图像的情况下更新记录时,它会从更新的行中删除图像(base64字符串)。
如何检查图像是否已更改,如果未更改:保持当前图像不变或换句话说,不更新该特定字段。这是我的更新的PHP脚本:
if( !is_null( $db ) && array_key_exists( 'edit_person', $_POST ) ):
$pn = filter_var( trim( $_POST['name'] ), FILTER_SANITIZE_STRING );
$n = filter_var( trim($_POST['age'] ), FILTER_SANITIZE_STRING );
// check if another image has been uploaded
$img = filter_var( trim($_POST['img'] ), FILTER_SANITIZE_STRING );
// if not: don't update img
$id = filter_var( trim ( $_POST['id'] ), FILTER_SANITIZE_NUMBER_INT );
update_person( $db, $id, $img, $n, $pn );
endif;
update_person函数:
function update_person( &$db, $id, $img, $age, $name ){
if( is_null( $db ) ) return '';
$sql = "
UPDATE
xxx
SET
xxx.name = :name,
xxx.age = :age,
xxx.img = :img
WHERE
xxx.id = :id
";
$vraag = $db->prepare( $sql );
$vraag->bindValue( ':name', $name, PDO::PARAM_STR );
$vraag->bindValue( ':age', $age, PDO::PARAM_STR );
$vraag->bindValue( ':img', $img, PDO::PARAM_STR );
$vraag->bindValue( ':id', $id, PDO::PARAM_INT );
$vraag->execute();
}
很感谢任何形式的帮助!
答案
请尝试以下代码。如果未设置$ img变量,请不要更新表中的image列
if( !is_null( $db ) && array_key_exists( 'edit_person', $_POST ) ):
$pn = filter_var( trim( $_POST['name'] ), FILTER_SANITIZE_STRING );
$n = filter_var( trim($_POST['age'] ), FILTER_SANITIZE_STRING );
// check if another image has been uploaded
$img = filter_var( trim($_POST['img'] ), FILTER_SANITIZE_STRING );
// if not: don't update img
$id = filter_var( trim ( $_POST['id'] ), FILTER_SANITIZE_NUMBER_INT );
if(!empty($img) && $img != '') :
update_person( $db, $id, $n, $pn );
else:
update_person( $db, $id, $img, $n, $pn );
endif;
endif;
希望这可以帮助。
以上是关于更新记录:如何检查新文件是否已上传PHP的主要内容,如果未能解决你的问题,请参考以下文章