对于将用户注释转储到
MySQL表的反馈表单,我不确定哪个bind_param类型用于用户提供的反馈文本(MysqL字段类型=文本)
function sql_ins_Feedback($dtcode,$custip,$name,$email,$subject,$Feedback) { global $MysqLi ; if($stmt = $MysqLi->prepare("INSERT INTO Feedback (dtcode,custip,name,email,subject,Feedback) VALUES (?,?,?)")) { $stmt->bind_param("ssssss",$dtcode,$Feedback); $stmt->execute() ; $stmt->close() ; } }
或这个?
$stmt->bind_param("sssssb",$Feedback);
那么,blob类型是文本字段的正确bind_param类型吗?
bind_param(“s”)类型的大小限制是多少?
使用bind_param(“b”)时还有什么必须做的吗?手册(以及我在某处/某处读到的其他内容)表明blob类型的处理方式不同 – 我应该知道什么?
谢谢
这实际上取决于MysqL服务器.整个查询中组合的所有数据的默认最大大小为1mb.见:
http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html
如果您的数据合并在“max_allowed_packet”阈值之下,则只需使用“s”作为任何文本字段的绑定类型.事实上,你通常可以使用“s”来表示任何字段类型(日期,浮动等).
如果您想要插入的整个条目组合的长度超过1mb(或重置它的任何内容),您将需要使用mysqli_stmt::send_long_data方法和“b”绑定类型以块的形式发送此特定字段.