条件插入列值

时间:2015-12-17 18:09:48

标签: php mysql

我在向表中插入记录时遇到问题,因为如果只有值不为null,我想将值插入特定列,我的查询就像这样

我试过了:

INSERT INTO users(id,name,phone,address) VALUES($userId,$userName,$userPhone,$userAddress);

但是如果在客户端没有发送其中一个参数而不是客户端发送所有参数(id,name,phone,address)我想要某种条件而不是处理查询的所有组合以解决此问题

2 个答案:

答案 0 :(得分:0)

你应该是this article,但你当前的问题是你没有引用任何东西:

$query = "INSERT INTO users(id,name,phone,address) VALUES('$userId', '$userName', '$userPhone', '$userAddress')";

现在,假设您正在使用using prepared queries连接正确地执行此操作,这就是您应该如何保护数据库:

$db = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$query = "INSERT INTO users (id, name, phone, address) VALUES (?, ?, ?, ?)";
$stmt = $db->prepare($query);
$result = $stmt->execute(array($userId,$userName,$userPhone,$userAddress));
if ($result) {
    //success
} else {
    //failure
}

答案 1 :(得分:0)

'放在VALUES ()'$userId'.

INSERT INTO users(id,name,phone,address) VALUES('$userId','$userName','$userPhone','$userAddress');

如果参数未到来,则让它在DB Table列中插入Null。 (允许为空)。并且,如果您不想在DB Table列中插入NULL,则在插入之前指定任何默认值。