文本的PHP mysqli bind_参数类型
对于将用户评论转储到MySQL表中的反馈表单,我不确定用户提供的反馈文本(MySQL字段类型=text)使用哪种绑定参数类型 还是这个文本的PHP mysqli bind_参数类型,php,mysqli,Php,Mysqli,对于将用户评论转储到MySQL表中的反馈表单,我不确定用户提供的反馈文本(MySQL字段类型=text)使用哪种绑定参数类型 还是这个 $stmt->bind_param("sssssb", $dtcode,$custip,$name,$email,$subject,$feedback); 那么,blob类型是文本字段的正确绑定参数类型吗 绑定参数(“s”)类型的大小限制是多少 使用bind_param(“b”)时还必须做什么?手册(以及我在某处/某个时候读到的其他内容)
$stmt->bind_param("sssssb", $dtcode,$custip,$name,$email,$subject,$feedback);
那么,blob类型是文本字段的正确绑定参数类型吗
绑定参数(“s”)类型的大小限制是多少
使用bind_param(“b”)时还必须做什么?手册(以及我在某处/某个时候读到的其他内容)建议对blob类型进行不同的处理——有什么我应该知道的吗
谢谢这实际上取决于Mysql服务器。整个查询中合并的所有数据的默认最大大小为1mb。见: 如果您的数据组合低于该阈值,只需对任何文本字段的绑定类型使用“s”。实际上,对于任何字段类型(日期、浮点等),通常都可以使用“s”来表示
如果您要插入的整个条目组合长度超过1mb(或您将其重置为的任何长度),您需要使用方法和“b”绑定类型将此特定字段分块发送。对于那些想要使用mysqli的
绑定参数('ssbss',$data')
您应该使用绑定参数('ssssss')
,在执行更新或插入时。这样您可以动态替换所有?在具有存储在数组中的值的准备好的查询中:
call_user_func_array(array($stmt, 'bind_param'), makeValuesReferenced($typeValues));
$typeValues
是使用array\u merge
或array\u unshift
按数组('sssss')和数组(参考var1,参考var2,…)合并的数组
MakeValues引用:
/**
* All prepared variables' references are needed by function bind_param
* @param &$arr: array constituted of types and values
*/
function makeValuesReferenced(&$arr){
$refs = array();
foreach($arr as $key => $value) {
// Param 1 of bind_param only needs value of types array
if($key === 0) {
$refs[$key] = $arr[$key];
} else {
$refs[$key] = &$arr[$key];
}
}
return $refs;
}
使用bind_param('ssbss',$data),只能在blob列中获得空单元格。数据库中该字段的列类型是什么?
/**
* All prepared variables' references are needed by function bind_param
* @param &$arr: array constituted of types and values
*/
function makeValuesReferenced(&$arr){
$refs = array();
foreach($arr as $key => $value) {
// Param 1 of bind_param only needs value of types array
if($key === 0) {
$refs[$key] = $arr[$key];
} else {
$refs[$key] = &$arr[$key];
}
}
return $refs;
}