gpt4 book ai didi

php - 是否有与 PDO::FETCH_CLASS 等效的 INSERT 或 UPDATE?

转载 作者:行者123 更新时间:2023-11-29 03:26:33 25 4
gpt4 key购买 nike

我发现 PDO::FETCH_CLASS 非常有用。我的类(class)映射到表格。我只是做一个

$query = $pdo->query("SELECT * FROM fixedTime WHERE
transmissionProgramID = '$transmissionProgramID'");
$query->setFetchMode(PDO::FETCH_CLASS, 'FixedTime');

瞧瞧。

我希望能够执行相反的操作:即实例化一个对象,将值加载到 UPDATE 或 INSERT,然后再一次瞧瞧。

看过但看不到这是否可用。

最佳答案

嗯,是的。在某种程度上,您可以使用类似的东西进行插入或更新。

但要做到这一点,您必须学习 how to use PDO properly .因此,首先我们必须修复您的选择代码:

$sql = "SELECT * FROM fixedTime WHERE transmissionProgramID = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$transmissionProgramID]);
$stmt->setFetchMode(PDO::FETCH_CLASS, 'FixedTime');
$ftime = $stmt->fetch();

看 - 我们在这里使用准备好的语句,无论如何你应该总是使用它。同时,这是我们可以用于更新的 [半] 自动化的关键。因为使用准备好的语句,您可以使用对象本身为准备好的查询提供值。

因此,只要您有对象属性反射(reflect)表字段,您就可以使用如下代码:

$user = new stdClass();
$user->name = "foo";
$user->pass = "bar";

$sql = "INSERT INTO users VALUES (NULL, :name, :pass)";
$pdo->prepare($sql)->execute((array)$user);

但对于真正的 自动化,您必须考虑使用 ORM,这正是您正在寻找的。你可以看看Eloquent例如。因此,代码将像

$ftime = new fixedTime;
$ftime->value = time();
$ftime->save();

关于php - 是否有与 PDO::FETCH_CLASS 等效的 INSERT 或 UPDATE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35328477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com