我的脚本从文件文本中读取电子邮件.txt,我想为mySQL数据库中的每封电子邮件记录电子邮件和唯一的随机代码。一切正常,但每次我都会得到相同的"随机代码"。
I get this:
example1@stack.com vsdggd
example2@stack.com vsdggd
example3@stack.com vsdggd
I want to get:
example1@stack.com bsgfdg
example2@stack.com jhngfv
example3@stack.com sdfasd
法典:
<?php
function generatePassword($length = 6){
$chars = 'abcdefhiknrstyz';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
include('../connect.php');
$query = 'insert into cc (email,token) values ("%s","'. generatePassword(6) .'");';
$lines = file('text.txt');//your filename
for($i=0; $i < count($lines); $i++){
mysql_query(sprintf($query, mysql_real_escape_string($lines[$i]))) or die(mysql_error() . '<br><br>' . '<b>Query:</b> ' . $query);
}
?>
你只调用一次 generatePassword(),为了按原样修复你的代码,你需要:
<?php
function generatePassword($length = 6){
$chars = 'abcdefhiknrstyz';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
include('../connect.php');
$query = 'insert into cc (email,token) values ("%s","%s");';
$lines = file('text.txt');//your filename
for($i=0; $i < count($lines); $i++){
mysql_query(sprintf($query, mysql_real_escape_string($lines[$i]), generatePassword(6))) or die(mysql_error() . '<br><br>' . '<b>Query:</b> ' . $query);
}
?>
因此,每一行都会调用 generatePassword()。
此外,您实际上应该使用较新的mysqli或理想的PDO,因为较旧的mysql已被弃用并且已从PHP7中删除。