我有一个像
function log_visitor_info ( $ip, $pgurl, $refurl, $aginfo )
{
global $wpdb, $ipsToIgnore;
if (!in_array($ip, $ipsToIgnore)) $wpdb->insert('wp_nas_visits', array('ip'=>$ip,'refurl'=>$refurl,'pgurl'=>$pgurl,'aginfo'=>$aginfo));
}
它将行插入到我的MySQL数据库中,想知道如果将一个大的值输入一列会发生什么。例如,列
aginfo
的类型为VARCAHR (250)
,那么如果字符串$aginfo
的长度为251,会发生什么?我的网站会崩溃吗?我需要通过做类似的事情来防止这种情况吗if ( strlen($aginfo) > 250 ) $aginfo = substr($aginfo, 0, 250);
防止这种情况发生?
最佳答案
如果未启用严格的SQL模式,并且您为CHAR或VARCHAR列分配的值超过了该列的最大长度,则该值将被截断以适合并生成警告。对于非空格字符的截断,可以通过使用严格的SQL模式导致发生错误(而不是警告)并抑制该值的插入。 https://dev.mysql.com/doc/refman/5.7/en/char.html