当前位置: 首页 > 面试题库 >

如何正确使用PDO对象进行参数化SELECT查询

齐典
2023-03-14
问题内容

我已经尝试按照PHP.net说明进行SELECT查询,但是我不确定执行此操作的最佳方法。

SELECT如果可能,我想使用参数化查询来返回ID表中name字段与参数匹配的表。这将返回一个,ID因为它将是唯一的。

然后,我想将其ID用于INSERT另一个表中,因此我将需要确定它是否成功。

我还读到您可以准备查询以供重用,但是我不确定这有什么帮助。


问题答案:

您选择像这样的数据:

$db = new PDO("...");
$statement = $db->prepare("select id from some_table where name = :name");
$statement->execute(array(':name' => "Jimbo"));
$row = $statement->fetch(); // Use fetchAll() if you want all results, or just iterate over the statement, since it implements Iterator

您以相同的方式插入:

$statement = $db->prepare("insert into some_other_table (some_id) values (:some_id)");
$statement->execute(array(':some_id' => $row['id']));

我建议您将PDO配置为在出错时引发异常。PDOException如果任何查询失败,您将得到一个-
无需显式检查。要打开异常,请在创建$db对象后立即调用此方法:

$db = new PDO("...");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


 类似资料:
  • 问题内容: 我有下面的代码(我包括了我认为所有相关的部分): 运行此命令时,在添加第一个参数时会收到IndexOutOfBoundsException。我做错了什么? 问题答案: 尝试以下方法:

  • 问题内容: 这是我的尝试: 问题答案: 我发布后马上想通了:

  • 问题内容: 使用SELECT查询从INSERT使用PHP PDO时,我有一个奇怪的行为。直接在MySQL中测试查询效果很好,我插入了我的行: 但是使用PDO时,我每个用户一次插入了一行(共279行)..这是PHP: 我想念什么?我几乎可以确定这没什么,但是不能让它插入那一行。 谢谢你。 fabien。 问题答案: 并非这是可能的问题,但是您在代码的密码字段中输入了用户名。在查询中,在此插入aesk

  • 我是新来的Node.js,并试图检查如果电子邮件已经通过发送电子邮件作为一个url参数从iOS应用程序。它不起作用,不确定我做错了什么。 我无法console.log前端发送的VSCode中的电子邮件参数,它在XCODE(http://localhost:3000/api/user/email/test@gmail.com)中打印,我知道后端正在获取GET请求。 我的路由器代码是: 非常感谢。

  • 在mySQL查询中,我希望根据WHERE子句中PDO绑定的搜索参数条件选择客户机表的行。类似于 有两种情况:A)搜索参数包含字符串或B)搜索参数为空 在A的情况下,param包含例如一个客户端号'123'。 因此,我使用:,如果客户机在表中,则查询返回客户机123。 在B的情况下,字符串为空。因此我没有使用WHERE子句,查询只是返回表中的所有客户端 我当然可以写一个IF..SELECT查询之外的

  • 问题内容: 这是我的代码: 为什么会这样呢? 第一个和第三个对象具有相同的内容和相同的哈希值,但它们讲述了3个唯一的对象? 问题答案: 您还需要以兼容的方式进行定义–否则,相等性将基于对象身份。 在Python 2上,建议您还定义与保持一致。在Python 3上,默认实现将为您委托。