我有一组数据存储在变量中,我想要一个页面将该数据写入 MySQL 数据库,我想包括插入时间,这是我的方法:
$username="username"; $password="password";
try {
$pdo = new PDO('mysql:host=localhost; dbname=db01', $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->prepare('INSERT INTO table01
(
Time,
variable1,
variable2,
)
VALUES
(
:Time,
:variable1,
:variable2,
)');
$stmt->execute(array(
':Time' => NOW(),
':variable1' => $var1,
':variable2' => $var2,
));
echo $stmt->rowCount(); // 1
} catch(PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
加载此页面时,css 从页面中剥离,我得到页面应该是什么样的乱码输出(白屏,纯文本一些图像),另外在检查数据库时没有任何内容被写入
没有 Time 变量,一切正常。
有什么建议吗?提前致谢
最佳答案
抱歉,我花了一些时间重新阅读。您正在使用 nysql 函数 now()
来完成这项工作,因此您不需要将其设置为参数,因此根本不需要绑定(bind)它。只需将其写入您的查询即可。
$stmt = $pdo->prepare('INSERT INTO table01
(
Time,
variable1,
variable2,
)
VALUES
(
now(),
:variable1,
:variable2,
)');
$stmt->execute(array(
':variable1' => $var1,
':variable2' => $var2,
));
编辑评论
查询中的 :
将其表示为准备好的查询中的参数。这意味着您必须然后通过bind()
命令绑定(bind)它。但是,如果您要从 数据库中插入数据(例如使用内置函数,或从另一行中提取数据),则无需在初始查询中使用 :
因此您不能将它传递给绑定(bind)参数数组中的查询。
关于php - 通过 PDO 将数据插入 MySQL,尝试使用数组将时间戳与数据一起包含 - 出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045636/