我知道有关于此主题的其他帖子,但他们不回答基本问题。以前的答案都说使用PDO :: PARAM_NULL,但是这并不能消除使用PDO的全部原因吗?无法设置NULL与PDO
这里是我的代码:
$sql = "INSERT INTO users_address (uid,street1,street2,city,state,region,postalcode,country) VALUES (?,?,?,?,?,?,?,?)";
$stmt = $this->db->conn_id->prepare($sql);
$stmt->bindParam(1, $uid, PDO::PARAM_INT);
$stmt->bindParam(2, $street1, PDO::PARAM_STR);
$stmt->bindParam(3, $street2, PDO::PARAM_STR);
$stmt->bindParam(4, $city, PDO::PARAM_STR);
$stmt->bindParam(5, $state, PDO::PARAM_STR);
$stmt->bindParam(6, $region, PDO::PARAM_STR);
$stmt->bindParam(7, $postalcode, PDO::PARAM_STR);
$stmt->bindParam(8, $country, PDO::PARAM_STR);
$stmt->execute();
并非所有这些值都必需的,这样有时候他们是空的。 varchar和int数据库字段都有default = null。我怎样才能做到这一点,以便如果变量恰好为null,那么null会被插入?我见过的所有其他答案都为第二个参数传递了NULL,但是我怎么知道它在运行时是空的?
要清楚。我不想隐式插入null。如果用户没有完成表单,我想要插入一个可能为null的变量。并非所有字段都需要在表单上。例如,在这个例子中,$ street2。
你究竟想要插入什么(即'$ street1','$ city' ...包含什么?),你会得到什么? – 2014-09-29 14:22:01
可能重复[如何使用PDO插入NULL值?](http://stackoverflow.com/questions/1391777/how-do-i-insert-null-values-using-pdo) – DanFromGermany 2014-09-29 14:24:09
不是重复丹和我解释了为什么。 :) 这些字段来自已发布的表单。并非所有字段都是必需的,所以有些可能为空。我收到一个错误,说不能处理空值。 – 2014-09-29 14:26:52