首页 >后端开发 >php教程 >为什么我的 PDO 准备语句无法插入 MySQL?

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

DDD
DDD原创
2024-11-24 13:38:12605浏览

Why are my PDO Prepared Statements Failing to INSERT into MySQL?

PDO 中 INSERT INTO 的准备语句错误

在处理 PDO 的复杂性时,您可能会在使用 MySQL 查询的准备语句时遇到困难。考虑以下代码:

$dbhost = "localhost";
$dbname = "pdo";
$dbusername = "root";
$dbpassword = "845625";

$link = new PDO("mysql:host=$dbhost;dbname=$dbname","$dbusername","$dbpassword");

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

    $statement->execute();

尽管采用了这种方法,您的数据库仍然是空的。

解决方案在于适当使用准备好的语句。相反,请使用以下内容:

$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

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

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

准备好的语句提供输入清理。在 SQL 语句中使用“:parameter”占位符,并在“execute”函数中传递这些参数的关联数组。或者,使用“?”占位符并传递值数组。

两种方法各有利弊。绑定参数名称可以增强可读性,而后一种方法可以简化代码。

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

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