我总共有两个字段,即姓名和电子邮件,如果用户尝试仅更新电子邮件..它应该只更新电子邮件字段而不是姓名字段。就我而言,如果我们将输入字段保留为空白,则它会更新为空白值。这是我用于学习目的的 PHP 代码。我知道我提供的代码会导致 sql 注入(inject),但仅供我引用。请让我知道如何解决此现有代码,我知道我们可以使用 if(trim($name) == '') 等做一些事情,但不清楚如何在此代码上实现。
<?php
require('connections/connect.php');
$res = array();
if( $_REQUEST['tablename'] != null &&
$_REQUEST['idName'] != null &&
$_REQUEST['idValue'] != null
){
$tablename = $_REQUEST['tablename'] ;
$idName = $_REQUEST['idName'] ;
$idValue = $_REQUEST['idValue'] ;
$name= $_REQUEST['name'] ;
$email= $_REQUEST['email'] ;
if (mysqli_query($conn,"UPDATE $tablename SET status = 2 , name= '$name' , email ='$email' WHERE $idName = $idValue" ) ){
$res['done'] =false;
$res['error'] = false;
$res['message'] = "Verified.";
$res['tablename'] = $tablename;
$res['idName'] = $idName;
$res['idValue'] = $idValue;
$res['updateadhar'] = $updateadhar;
}else{
$res['done'] =true;
$res['error'] = true;
$res['message'] = "Try again later.";
}
}else{
$res['error'] = true;
$res['message'] = "Fields are missing.";
}
echo json_encode($res);
?>
最佳答案
您可以再次读取更新中的用户信息,并检查发布的电子邮件地址是否为空,使用您已经读取的电子邮件数据。
在这种情况下,您确定正在更新现有用户。
<?php
require('connections/connect.php');
$res = array();
if( $_REQUEST['tablename'] != null &&
$_REQUEST['idName'] != null &&
$_REQUEST['idValue'] != null
){
$tablename = $_REQUEST['tablename'] ;
$idName = $_REQUEST['idName'] ;
$idValue = $_REQUEST['idValue'] ;
$name= $_REQUEST['name'] ;
$email= !empty($_REQUEST['email']) ? $_REQUEST['email'] : "" ;
//read user info here
// $user = getUserInfo($idValue )
// if($email == ""){
// $email = $user['emial'];
// }
if (mysqli_query($conn,"UPDATE $tablename SET status = 2 , name= '$name' , email ='$email' WHERE $idName = $idValue" ) ){
$res['done'] =false;
$res['error'] = false;
$res['message'] = "Verified.";
$res['tablename'] = $tablename;
$res['idName'] = $idName;
$res['idValue'] = $idValue;
$res['updateadhar'] = $updateadhar;
}else{
$res['done'] =true;
$res['error'] = true;
$res['message'] = "Try again later.";
}
}else{
$res['error'] = true;
$res['message'] = "Fields are missing.";
}
echo json_encode($res);
关于php - 不应在数据库 mysql PHP 上更新空白字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112748/