Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP bind_param将数字另存为i或s有什么区别?_Php_Bindparam - Fatal编程技术网

PHP bind_param将数字另存为i或s有什么区别?

PHP bind_param将数字另存为i或s有什么区别?,php,bindparam,Php,Bindparam,在执行PHP prepare语句时,我们需要指定绑定类型,如i、s、d、b。如果我将数字绑定为“s”字符串,会有什么区别 数据库驱动程序(即php)将数据发送到DBMS的方式会有所不同。绑定类型时,数据首先转换为该特定类型,然后通过连接发送到DBMS。例如,假设PHP中的值是字符串“9223372036854775808”。如果将其绑定为字符串,则数据将作为字符串发送到DBMS,DBMS可以自由执行任何内部转换,以将值打包并存储在指定的列类型下。但是,如果您将其绑定为整数,则PHP将首先执行强制

在执行PHP prepare语句时,我们需要指定绑定类型,如i、s、d、b。如果我将数字绑定为“s”字符串,会有什么区别

数据库驱动程序(即php)将数据发送到DBMS的方式会有所不同。绑定类型时,数据首先转换为该特定类型,然后通过连接发送到DBMS。例如,假设PHP中的值是字符串
“9223372036854775808”
。如果将其绑定为字符串,则数据将作为字符串发送到DBMS,DBMS可以自由执行任何内部转换,以将值打包并存储在指定的列类型下。但是,如果您将其绑定为整数,则PHP将首先执行强制转换,然后再通过导线发送。这意味着该值首先变为
(int)“9223372036854775808”
,从而产生值
9223372036854775807
,然后打包为
0xffffffff
的二进制有效负载。结果是DBMS将按原样接受数据,无需进一步更改

当然,这会产生不同的副作用。例如,整数大小(32位vs 64位vs任意精度)可能因控制强制转换和打包操作的人而异。此外,检查整数溢出/包装精度的责任落在谁执行强制转换和打包(驱动程序与DBMS)的一边。其他副作用包括通过电线的有效载荷大小。字符串大于压缩二进制整数


理想情况下,在这种情况下,特异性是一件好事。因为大多数情况下,数据库只能通过以字符串形式发送所有内容来与php通信。尽管驱动程序可以做出关于如何在PHP中表示该数据的更明智的决定(这对程序员来说应该很重要),只要给出该数据在两端之间绑定的更具体的表示。

数据库驱动程序(即PHP)将数据发送到DBMS的方式就会有所不同。绑定类型时,数据首先转换为该特定类型,然后通过连接发送到DBMS。例如,假设PHP中的值是字符串
“9223372036854775808”
。如果将其绑定为字符串,则数据将作为字符串发送到DBMS,DBMS可以自由执行任何内部转换,以将值打包并存储在指定的列类型下。但是,如果您将其绑定为整数,则PHP将首先执行强制转换,然后再通过导线发送。这意味着该值首先变为
(int)“9223372036854775808”
,从而产生值
9223372036854775807
,然后打包为
0xffffffff
的二进制有效负载。结果是DBMS将按原样接受数据,无需进一步更改

当然,这会产生不同的副作用。例如,整数大小(32位vs 64位vs任意精度)可能因控制强制转换和打包操作的人而异。此外,检查整数溢出/包装精度的责任落在谁执行强制转换和打包(驱动程序与DBMS)的一边。其他副作用包括通过电线的有效载荷大小。字符串大于压缩二进制整数


理想情况下,在这种情况下,特异性是一件好事。因为大多数情况下,数据库只能通过以字符串形式发送所有内容来与php通信。尽管驱动程序可以做出关于如何在PHP中表示该数据的更明智的决定(这对程序员来说应该很重要),因为它给出了数据在两端之间绑定的更具体的表示方式。

不完全确定这是您正在使用的函数,但看起来这可能会有所帮助。不完全确定这是您正在使用的函数,但看起来这可能会有所帮助。谢谢谢里夫!这很有帮助。谢谢你,谢里夫!这很有帮助。我很感激。