Это мой фрагмент PHP, который я использую для случайной генерации строки генератора в строке, но она не работает. Мне нужен $ АКТСА идти в ACTC поле строки, но это на самом деле не делает этого, он остается 0.Не помещать переменную в таблицу 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());
Моей таблица структуры экспортируемой в SQL:
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 ;
Вы пытаетесь вставить значение типа string в столбец 'int (11)'. MySQL попытается проанализировать вашу строку, но если она не начинается с цифры, вы просто получите '0'. – Basti
Использование 32 даст вам * слегка лучшее случайное распределение. –