php - 这个sql IF语句是如何工作的?

标签 php mysql if-statement

我正在尝试创建一个 php 页面,登录用户可以在其中更新他们的个人资料。 我找到了一个我试图坚持的例子:

我收到来自更新表单的 POST:

$id=$_SESSION['id'];
$info1=mysql_real_escape_string($_POST['info1']);
$info2=mysql_real_escape_string($_POST['info2']);
$info3=mysql_real_escape_string($_POST['info3']);

更新配置文件的sql查询

$query=mysqli->query("UPDATE profiles SET 
info1=IF('$info1' = '', info1, '$info1'),
info2=IF('$info2' = '', info2, '$info2'),
info3=IF('$info3' = '', info3, '$info3')
WHERE id='$id'");

这个简短的 IF 语句是如何工作的? 如果没有输入,我不想更新该列 - 这是它的作用吗? 我将如何向输入添加一些标准?比如字符串的长度等。

最佳答案

因此,为了从解释 IF() 条件的 Benio 的回答中澄清,实际上它是说对于您尝试更新的每一列,

如果传入的 $variable 值为空,则用它已有的值替换该列(即:不要仅仅因为传入一个空值就销毁它)。如果有非空白的东西(IF() 函数的另一半),用 $variable 是什么更新列...

很明显,对于 info1、2、3 的每一列,您都有 3 个不同的 $ 变量。

关于php - 这个sql IF语句是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22832758/

相关文章:

php - 对登录字段使用晦涩的名称毫无意义

java - 我添加范围 1 - 9999 条件的代码无法使用 switch 语句运行

MySql 计数事件实例

python - 我的else语句始终是无效的语法

php - 如何从表中获取行数并将其插入到 MySQL 中的同一个表中?

php - 创建动态 js 文件并缓存它?

php - 如何将 SQL 查询放入 for() 循环中

mysql - FreeBSD 9.2 (x64) libmysqlclient.so.18

mysql - Mule - 阻止所有流在单流中的 MySQL 连接失败时关闭

mysql - 为什么此过程会引发 'Unknown Column' 错误