这是我的PHP片段我目前正在使用将一个随机生成器字符串放在一行中,但它不工作。我需要$ ACTC进入该行的ACTC领域,但实际上并没有这样做,它停留在SQL出口0.1不把变量放在MySQL表中
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$actc = '' ;
while ($i <= 11) {
$num = rand() % 33;
$tmpc = substr($chars, $num, 1);
$actc = $actc . $tmpc;
$i++;
}
mysql_query("INSERT INTO users (username, pass, email, ip, actc)
VALUES ('".$nl."', '".$pw."', '".$email."', '".$_SERVER['REMOTE_ADDR']."', '".$actc."')") or die(mysql_error());
我的表结构:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(255) NOT NULL,
`pass` varchar(60) NOT NULL,
`email` varchar(255) NOT NULL,
`ip` varchar(20) NOT NULL,
`actc` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4531 ;
您试图向'int(11)'类型列中插入'string'类型的值。 MySQL会尝试解析你的'字符串',但如果它不是以数字开头的,你只会得到'0'。 – Basti 2012-03-12 21:19:36
使用32会给你一个*稍微*更好的随机分布。 – 2012-03-12 21:19:58