<?php
session_start();
include('config.php');
$id = $_SESSION['USER_ID'];
$sql = "UPDATE user ";
if($_POST["fname"]!=""){
$sql .="set FIRST_NAME='".$_POST["fname"]."',";
}
if($_POST["lname"]!=""){
$sql .="set LAST_NAME='".$_POST["lname"]."',";
}
if($_POST["email"]!=""){
$sql .="set EMAIL='".$_POST["email"]."',";
}
$sql .="where USER_ID=".$id ;
$result = mysql_query($sql);
if($result=='1'){
?>
<script type="text/javascript">
alert('Details successfully changed!');
</script>
<?php
}else{
?>
<script type="text/javascript">
alert('Error : Data editing');
</script>
<?php
}
上面是我用来编辑用户表中详细信息的代码。我确实想检查填充的字段,然后将其更新到数据库中,但这是行不通的,当我回显此$ sql时,它会显示此信息。
UPDATE user set FIRST_NAME='test',set LAST_NAME='one',set EMAIL='[email protected]',where USER_ID=4
那么我的代码有什么错误呢?
SQL中的问题是多个“ SET”语句。
您可以使用类似的方法。
一个数组,用于设置您的值,并可以将其内插后用“,”分隔
$id = $_SESSION['USER_ID'];
$setStatement = array();
if($_POST["fname"] != "") { array_push($setStatement, "FIRST_NAME = '".$_POST["fname"]."'"); }
if($_POST["lname"] != "") { array_push($setStatement, "LAST_NAME = '".$_POST["lname"]."'"); }
if($_POST["email"] != "") { array_push($setStatement, "EMAIL = '".$_POST["email"]."'"); }
if(!empty($setStatement)) {
$sql = "UPDATE user SET " . implode($setStatement, ", ") . " WHERE USER_ID=". $id;
//print $sql;
$result = mysql_query($sql);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句