首页  >  文章  >  后端开发  >  为什么我的 PDO 准备语句不插入 MySQL?

为什么我的 PDO 准备语句不插入 MySQL?

Susan Sarandon
Susan Sarandon原创
2024-11-25 00:48:11239浏览

Why Doesn't My PDO Prepared Statement INSERT INTO MySQL?

使用 PDO 准备语句进行 MySQL INSERT INTO 查询

在 PHP 开发领域,使用 PDO 执行 MySQL 查询具有许多优势。然而,初学者在尝试使用准备好的语句进行 INSERT INTO 操作时经常会遇到障碍。

让我们考虑一下这个神秘的代码片段:

$statement = $link->prepare("INSERT INTO testtable(name, lastname, age)
VALUES('Bob','Desaunois','18')");
$statement->execute();

尽管编码人员付出了辛勤的努力,数据库仍然存在空虚得令人心痛。代码中潜伏着什么难以捉摸的错误?

成功的隐藏关键

解开这个谜团的关键在于理解参数绑定的力量。 PDO 准备好的语句允许开发人员安全地将值绑定到 SQL 查询中的占位符,而无需诉诸连接。为此,应仔细遵循以下步骤:

  1. 在 SQL 语句中使用参数占位符(:foo 或 ?)。
  2. 构造一个包含以下内容的关联数组或索引数组:要绑定的值。
  3. 使用execute() 函数将数组作为参数传递,将值绑定到

带有绑定参数的示例代码

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

带有索引参数的示例代码

$statement = $link->prepare('INSERT INTO testtable (name, lastname, age)
    VALUES (?, ?, ?)');

$statement->execute(['Bob', 'Desaunois', '18']);

优点和首选项

两种参数绑定方法都有自己的优点和缺点。按参数名称绑定可提高可读性,而按索引绑定可减少代码。选择最终取决于开发人员的偏好。

采用这些原则将使开发人员能够使用 PDO 准备好的语句轻松执行 INSERT INTO 操作,确保他们的数据在数据库中找到正确的位置。

以上是为什么我的 PDO 准备语句不插入 MySQL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn