高分 求php 批量写入mysql表,简化源代码。不要复制粘贴别人的。

<?phpif(isset($_POST["tijiao"])){$str='1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';$i=rand(... <?php
if (isset($_POST["tijiao"])){
$str='1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$i=rand(0,35);
$a1=
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].'-'.
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].'-'.
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].'-'.
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)];
$a2=
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].'-'.
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].'-'.
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].'-'.
$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)].$str[rand(0,35)];
//首先我生成了有100条ETMQ-8Z5N-QWMO-ELBM这种格式的激活码,
----------------------------------------------
$sql = "insert into jihuoma (number,time)values($a1x,now())";
$sql = "insert into jihuoma (number,time)values($a2x,now())";
//一共有$a1x到$a100x 一百条。。。。上面的随机数我也就生成了100遍,
//也求能帮简化一下,不用这种笨方法怎么才能生成100条不重复的。
mysql_query($sql,$conn);//$conn已经设置好了
//我知道我上面的写法是不对的,
//我是个非常菜的菜鸟。没去正经的地方学过,基础不好不要笑话。
//200分求简化随机数那里和批量写入数据库的现成的代码,只能做伸手党了。谢谢了。

//另外我有个想法,因为我是想生成这些激活码到数据库里面,当我点击生成新的随机码的时候,我也想同时生成一个TXT文本下载到本地
//里面包含刚刚生成并写入数据库的那些激活码,一行一个激活码,自动换行的格式。
//如果能一起帮把代码写出来,再追加200分。
//一定会采纳的,请放心。好人一生平安。
}
?>
<form method="post">
<input name="tijiao" type="button" id="tijiao" value="点击生成100条激活码并下载TXT">
</form>
下面是补充问题:
$sql = "insert into jihuoma (number,time)values($a1 ,now())";
$sql = "insert into jihuoma (number,time)values($a2,now())";
//一共有$a1到$a100 一百条。。。。上面的随机数我也就生成了100遍,
这里写错了,没有x。
----------------
另外有一点漏掉了,生成的激活码,不能重复,也不能和数据库中number重复。如果重复的话不添加。这里要做个判断。
展开
 我来答
windblast
2017-04-15 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13622
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

1、批量生成注册码的示例代码如下:

<?php
$Codes = GenCode(100);

echo '<pre>';
print_r($Codes);
echo '</pre>';
 
function GenCode($GenCount)
{
    $CodeArr = array();

    $KeyStr = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';

    for ($d = 1; $d <= $GenCount; $d++) {
        $CodeStr = '';   
        for ($i = 1; $i < 5; $i++) {          
            $Keys = str_shuffle($KeyStr);
            $CodeStr = $CodeStr . '-' . substr($Keys,1,4);
        }
        $CodeArr[] = substr($CodeStr,1);
    }
    
    array_unique($Codes);
    return $CodeArr;
}

代码运行截图:

2、将上面的数据保存到 txt 文件,代码示例:

<?php
$Codes = GenCode(100);

SaveToTxt('./test.txt',$Codes);

function SaveToTxt($FileName, $CodeArray)
{
    $fp = fopen($FileName, "w+") or die("打开 $FileName 失败。");
    fwrite($fp, implode("\r\n", $CodeArray)) or die("写入 $FileName 数据失败。");
    fclose($fp);
}
更多追问追答
追问

还差一个写入数据库的sql语句批量的怎么写,我愿意追加双倍财富,请不要高估我的能力,

我简直是菜鸟啊,

生成随机激活码----写入数据库----下载txt,一起的 。万分感谢好人一生平安

另外代码有两处报错,提示没定义$codes

而且保存到txt的和生成的不一样,代码是向上面图片那样拼的

我测试代码也是成功的,哈哈,就差怎么批量写入数据库了,谢谢大神送佛送到西。

追答

假设,数据库名为 test,表的结构如下:

则,写入数据库代码示例:

<?php
$Codes = GenCode(100);

SaveToDbf($Codes, 'keycode');

function SaveToDbf($CodeArray, $TableName)
{
    $sql = 'INSERT IGNORE INTO ' . $TableName . '(keynum) VALUES ';
    $temp = '';
    for ($i = 0; $i < count($CodeArray); $i++) 
    {
        $temp = $temp . "('$CodeArray[$i]'),";
    }
    
    $sql = rtrim($sql . $temp,',');

    $mysqli = new mysqli("localhost", "用户名", "密码", "数据库名称");

    if (mysqli_connect_errno()) {
        printf("连接数据库错误: %s\n", mysqli_connect_error());
        exit();
    }
    
    if ($mysqli->query($sql) === TRUE) {
        printf("写入成功。\n");
    } else
      echo '写入到数据库出现错误:' . $mysqli->error;
    
    $mysqli->close();
}

运行截图:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式