栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP PDO :: bindParam()数据类型..它如何工作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP PDO :: bindParam()数据类型..它如何工作?

在其他语言的其他数据库抽象框架中,它可用于确保诸如对内联值进行正确的转义(对于不支持正确绑定参数的驱动程序)以及通过确保数字是否正确来提高网络效率。适当打包二进制文件(提供协议支持)。看起来像在PDO中,它并没有做太多事情。

   if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_STR && param->max_value_len <= 0 && ! ZVAL_IS_NULL(param->parameter)) {     if (Z_TYPE_P(param->parameter) == IS_DOUBLE) {  char *p;  int len = spprintf(&p, 0, "%F", Z_DVAL_P(param->parameter));  ZVAL_STRINGL(param->parameter, p, len, 0);     } else {  convert_to_string(param->parameter);     }        } else if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_INT && Z_TYPE_P(param->parameter) == IS_BOOL) {     convert_to_long(param->parameter);        } else if (PDO_PARAM_TYPE(param->param_type) == PDO_PARAM_BOOL && Z_TYPE_P(param->parameter) == IS_LONG) {     convert_to_boolean(param->parameter);        }

因此,如果您说它是STR(或者您什么也不说,因为这是默认值),并且您的数据的内部类型是double,那么它将使用一种方法将其转换为字符串,如果不是double,则它将会使用其他方法将其转换为字符串。

如果您说这是一个整数,但实际上是布尔值,那么它将把它转换为long。

如果您说的是布尔值,但实际上是一个数字,那么它将把它转换为真正的布尔值。

我实际上是(快速地)查看了stmt源代码,我想一旦将参数传递到驱动程序中,它们就可以做更多的事情。因此,我想您所获得的只是一点点正确的做,以及驾驶员之间很多行为的歧义和差异。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412065.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号