【发布时间】:2011-07-05 01:46:21
【问题描述】:
我有这个问题: 我正在使用 PDO 准备好的语句.... 我想绑定一个变量,但如果变量为 NULL,它必须在 MYSQL 中插入字段的默认值...
我正在尝试 IFNULL(:User_Login__Is_Active, DEFAULT), 我也试过: COALESCE(:User_Login__Is_Active, DEFAULT), 同样的错误: PDOException: SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;
你怎么能这样做?
看这个例子:
$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;
【问题讨论】:
标签: insert default-value dbo sqlbindparameter