PHP/MySQL更新,忽略空/空值
我是PHP/MySQL新手,需要更新表单方面的帮助 我从表单中获取值,在更新查询中,我只想更新id=$id处不为空的字段 榜样PHP/MySQL更新,忽略空/空值,php,mysql,sql-update,Php,Mysql,Sql Update,我是PHP/MySQL新手,需要更新表单方面的帮助 我从表单中获取值,在更新查询中,我只想更新id=$id处不为空的字段 榜样 $a = $_POST['a']; $b = $_POST['b']; $c = $_POST['c']; $1 = $_POST['number1']; $2 = $_POST['number2']; $3 = $_POST['number3']; $sql = "UPDATE table SET a='$a', b='$b', c='$c' WHERE numb
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$1 = $_POST['number1'];
$2 = $_POST['number2'];
$3 = $_POST['number3'];
$sql = "UPDATE table SET a='$a', b='$b', c='$c' WHERE number='$1' OR number='$2' OR number='$3' ";
但如果$b为空或null,则应将其从更新字符串中排除,但应使用新值更新$a和$c。表中应保留$b的allredy现有值
问候,,
ChrickisChrickis,在编写代码时应该遵循php规范,但是对于您的问题,您可以在
$condition = ''; //create new varible
$b = isset($_POST['b'])?$_POST['b']:""; //check for data in field b
if($b){ $condition = "b='".$b."', "; } //write sql condition if $b has any value
$sql = "UPDATE table SET a='$a', ".$condition." c='$c' WHERE number='$1' OR number='$2' OR number='$3' "; //modify sql
我建议首先检查所有解析的值,并在此基础上编写php代码以进行更新查询 变量$1 wtf的无效名称?变量不能以数字开头。请阅读有关的官方文档。请(请!)转义用户输入!将列设置为非空。您应该了解sql注入,将表单输入直接带入查询可能会导致安全漏洞。用准备好的声明查看MySQL或PDO。CrkIIS,如果它为你工作,而不是把这个答案标记为正确的,这样其他用户也可以考虑这个例子。