php - 通过 PDO 将数据插入 MySQL,尝试使用数组将时间戳与数据一起包含 - 出现错误?

标签 php mysql database pdo

我有一组数据存储在变量中,我想要一个页面将该数据写入 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/

相关文章:

php - 在 Laravel 中查看如何对 URL 进行 json_decode

php - 如何使用 PHP 和 MySQL 更改数据库值?

php - 使用 PHP 按钮生成 CSV 时,CSV 文件中的内容附加两次

Java异常消息长度

Internet Explorer 中的 PHP SDK + Javascript SDK 问题

使用 UNIX_TIMESTAMP 的 mySQL 查询返回 0 结果

mysql - KOA - mysql 错误的依赖项

PHP/SQL 简单点击计数器按钮

sql - 术语 DDL、DML 和 DCL 的起源是什么?

MySql 查询按月或年获取数据