我有一组数据存储在变量中,我想要一个页面将该数据写入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变量,一切都很完美。
有什么建议吗?提前致谢
答案 0 :(得分:4)
抱歉,带我片刻重新阅读。您正在使用nysql函数now()
来完成工作,因此您不需要将其设置为param,因此根本不需要绑定它。只需将其写入您的查询即可。
$stmt = $pdo->prepare('INSERT INTO table01
(
Time,
variable1,
variable2,
)
VALUES
(
now(),
:variable1,
:variable2,
)');
$stmt->execute(array(
':variable1' => $var1,
':variable2' => $var2,
));
编辑重新评论
查询中的:
将其表示为准备好的查询中的参数。这意味着你必须然后通过bind()
命令绑定它。但是,如果要从在数据库中插入数据(例如使用内置函数,或从另一行中提取数据),则无需在初始查询中使用{ {1}}因此您无法将其传递给绑定的params数组中的查询。