gpt4 book ai didi

php - 将所有 PDO 参数绑定(bind)为 PARAM_STR 有什么损失?

转载 作者:行者123 更新时间:2023-11-29 00:57:33 24 4
gpt4 key购买 nike

我正在为 PHP PDO 创建一个简单的查询构建器,以更快地创建查询,而无需对条件/订单/限制根据某些条件(如过滤器引擎)组合在一起的部分进行大量绑定(bind)和拆分查询创建过程,您可以在其中选择一些标准)。我有这样的方法:

$query->addWhere( 'uid', '>' , 100 );

添加 where 条件并将 :uid 绑定(bind)到 100,我也可以像这样省略绑定(bind):

$query->addWhere( 'date', '>' , 'NOW()' , false );

但是我没有带100个参数类型的信息。更深入地执行查询,我不做 bindParam 或 bindValue,而是传递我的绑定(bind)表来执行:

$stmt->execute( $query->getBinds() );

我的所有参数都被视为 PARAM_STR 还是从数组中的变量类型获取 PDO 类型?我能失去什么?只有性能/内存或可能有一些数据丢失或逻辑错误?

附言我不想为参数创建另一个类,因为我想保持简单,我的意思是:

$query->addWhere( new Field('uid') , '=' , new IntParam( 100 ) ); or something

最佳答案

虽然我看不出这样的查询构建器有什么好处(你的收获少至省略几个单词,而损失多至从宝贵的 SQL 中生成完全不可读的代码),答案是否定的:没有损失。
只需关闭仿真模式,PDO 就会自动检测所需的类型。

$dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );

关于php - 将所有 PDO 参数绑定(bind)为 PARAM_STR 有什么损失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5281562/

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