0

我有一组存储在变量中的数据,我想要一个页面将该数据写入 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 变量,一切都可以完美运行。

有什么建议吗?提前致谢

4

1 回答 1

4

抱歉,我花了点时间重新阅读。您正在使用 nysql 函数now()来完成这项工作,因此您不需要将其设置为参数,因此根本不需要绑定它。只需将其写入您的查询。

  $stmt = $pdo->prepare('INSERT INTO table01
  (
   Time,
   variable1,
   variable2,
  )

VALUES
  (
    now(),
    :variable1,
    :variable2,
  )');

  $stmt->execute(array(
    ':variable1' => $var1,
    ':variable2' => $var2,
  ));

编辑重新评论

查询中的:表示它作为准备好的查询中的参数。这意味着您必须通过bind()命令绑定它。但是,如果您从数据库中插入数据例如使用内置函数,或从另一行中提取数据),则无需在初始查询中声明它,:因此您无法传递它到绑定参数数组中的查询。

于 2012-08-20T21:46:27.583 回答