gpt4 book ai didi

php - 当BindParam中的变量为null时如何插入DEFAULT

转载 作者:行者123 更新时间:2023-12-02 08:46:28 25 4
gpt4 key购买 nike

我正在使用 PDO 准备好的语句。我想绑定(bind)一个变量,但如果该变量为 NULL,则必须在 MYSQL 中插入该字段的默认值。

我正在尝试IFNULL(:User_Login__Is_Active, DEFAULT),我也尝试过:COALESCE(:User_Login__Is_Active, DEFAULT),同样的错误:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;

你怎么能做到这一点?

看这个例子:

$stmt = $this->pdo->prepare('INSERT INTO user_login
( User_Login__ID,
User_Login__Is_Active,
User_Login__Created_Date )
VALUES (
:User_Login__ID,
IFNULL(:User_Login__Is_Active, DEFAULT),
:User_Login__Created_Date )');


$stmt->bindParam(':User_Login__ID', $this->User_Login__ID, PDO::PARAM_INT);
$stmt->bindParam(':User_Login__Is_Active', $this->User_Login__Is_Active, PDO::PARAM_STR, 100);
$stmt->bindParam(':User_Login__Created_Date', $this->User_Login__Created_Date, PDO::PARAM_STR, 100);


$this->User_Login__Is_Active = null;

最佳答案

关键字DEFAULT不能在表达式内部使用,它只能替换整个表达式。

但是,函数DEFAULT()可以在任何地方使用。

因此,请将示例中的 DEFAULT 替换为 DEFAULT(User_Login__Is_Active)

关于php - 当BindParam中的变量为null时如何插入DEFAULT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com