0
我试图在导入.csv文件时生成一个名为Access的随机字母数字字段。 .csv文件有3个字段:First_Name,Last_Name,Email。我的MYSQL表有4个字段:First_Name,Last_Name,Email,Access。我需要在导入过程中添加一个名为Access的第四个字段,它可以是随机的字母数字。这是我迄今为止所提出的。在加载文件infile期间生成随机字段
//get the csv file
$file = $_FILES[csv][tmp_name];
$handle = @fopen($file,"r");
//loop through the csv file and insert into database
if ($_FILES[csv][size] > 0) {
$access2 = random_password_length(15);
$temp = $_FILES['csv']['tmp_name'];
$sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE sendit_emails
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'
(@First_Name, @Last_Name, @Email, @Access)
SET [email protected]_Name, [email protected]_Name,
[email protected], '$access2'[email protected]";
在我的PHP页面的底部,我宣布的功能random_password:
<?php
function random_password_length($length = 15) {
$chars = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
$password = substr(str_shuffle($chars), 0, $length);
return $password;
}
?>
我得到@Access附近的语法错误。任何帮助,将不胜感激。我也愿意尝试另一种技术。
谢谢您的答复。尽管您的建议导入了Access字段,但我注意到所有记录都具有相同的字母数字代码。有没有办法为每一行获得不同的随机字母数字? – user3258571
当然,只需跳过php函数并在MySQL中生成密码即可。假设你想使用15个伪随机字母数字字符的现有方法,你可以在MySQL中这样做:'SET Access = upper(left(md5(rand()),15))' –
这是有效的。这种方法是真正的随机还是有一个模式?非常感谢您的帮助。 – user3258571