Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/MySQL更新,忽略空/空值_Php_Mysql_Sql Update - Fatal编程技术网

PHP/MySQL更新,忽略空/空值

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

我是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 number='$1' OR number='$2' OR number='$3' ";
但如果$b为空或null,则应将其从更新字符串中排除,但应使用新值更新$a和$c。表中应保留$b的allredy现有值

问候,,
Chrickis

Chrickis,在编写代码时应该遵循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,如果它为你工作,而不是把这个答案标记为正确的,这样其他用户也可以考虑这个例子。