首页 > 解决方案 > 从字符串变量插入日期不起作用

问题描述

我想在我的数据库中插入一个日期。不幸的是,我没有让它使用变量来工作。如果我手动执行它,它就像一个魅力。

// doesn't work
$_POST['name'] = 'Tom';
$_POST['date'] = '2020-05-05';

$sql = "INSERT INTO tbl_user (name, date) VALUES (:name, :date)";
$stmt = $pdo->prepare($sql);

foreach ($_POST as $key => $data) {
    $stmt->bindParam(':' . $key, $data);
}

// works
$_POST['name'] = 'Tom';

$sql = "INSERT INTO tbl_user (name, date) VALUES (:name, '2020-05-05')";
$stmt = $pdo->prepare($sql);

foreach ($_POST as $key => $data) {
    $stmt->bindParam(':' . $key, $data);
}

PS:我没有收到任何错误,目前我将值手动添加到 $_POST。$key 和 $data 完美匹配。如果我将我的数据库列从 DATE 更改为 VARCHAR(255) 它就像一个魅力。所以它与日期的格式有关,不是吗?

标签: phpmysqldatabasepdoinsert

解决方案


推荐阅读