第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果序列號不存在于數(shù)據(jù)庫中,如何生成序列號

如果序列號不存在于數(shù)據(jù)庫中,如何生成序列號

PHP
慕運維8079593 2023-04-02 14:51:57
有誰能告訴我最好的方法嗎?我正在嘗試生成一個帶有唯一代碼的序列號我想檢查數(shù)據(jù)庫中是否存在序列號如果序列號已經(jīng)存在于數(shù)據(jù)庫中,它會生成一個新的序列號,然后插入。如果沒有序列號,則直接插入數(shù)據(jù)庫      <div class="col-sm-9">              <input type="text" name="sn" value="AXJ<?php echo rand(10000, 99999) ?>" class="form-control" id="sn" placeholder="" readonly>            </div>我的問題是,檢查數(shù)據(jù)庫的功能如何?
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻1876條經(jīng)驗 獲得超7個贊

我創(chuàng)建了一個示例。從測試數(shù)據(jù)庫和表結構開始:


-- Database: `serials`


DROP TABLE IF EXISTS `serial`;

CREATE TABLE IF NOT EXISTS `serial` (

  `id` int(10) NOT NULL AUTO_INCREMENT,

  `serial` varchar(100) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

創(chuàng)建一個db.php文件來連接數(shù)據(jù)庫:


function connect()

{

    $dsn = 'mysql:host=localhost;port=3306;dbname=serials';


    try{

        return new PDO($dsn, 'root', '');

    }catch( \Exception $e ){

        echo $e->getMessage();

        exit;

    }

}

如果您還沒有準備好插入并且只想向用戶顯示一個獨特的序列號,我創(chuàng)建了form.php并執(zhí)行了以下操作:


<?php

require_once('./db.php');


    function createSerial() {

        $timestamp = time() . rand(10000, 99999);


        for($i=1;$i<=strlen($timestamp);$i++){

            $piece = substr($timestamp, $i - 1, 1);

            $shuffle_array[] = $piece;

        }


        shuffle($shuffle_array);


        return implode('', $shuffle_array);

    }


    $pdo = connect();


    //try up to 5 times

    for($i=0;$i<=4;$i++) {

        $serial_number = createSerial();


        $sql = "SELECT * FROM serial WHERE serial = :serial";

        $dbh = $pdo->prepare($sql);

        $dbh->execute( [

            ':serial' => $serial_number

        ]);


        if( $dbh->rowCount() ) {

            $serial_number = '';

        }

    }



if( $serial_number) { ?>

<form action="form.php" method="post">


    <div class="col-sm-9">

        <input type="text" name="sn" value="AXJ<?php echo $serial_number; ?>" class="form-control" id="sn" placeholder="" readonly>

    </div>


<?php

}

?>

還做了一個插入的例子:


function createSerial() {

    $timestamp = time() . rand(10000, 99999);


    for($i=1;$i<=strlen($timestamp);$i++){

        $piece = substr($timestamp, $i - 1, 1);

        $shuffle_array[] = $piece;

    }


    shuffle($shuffle_array);


    return implode('', $shuffle_array);

}


//database

$pdo = connect();


//try up to 5 times

for($i=0;$i<=4;$i++) {

    $serial_number = createSerial();


    $sql = "SELECT * FROM serial WHERE serial = :serial";

    $dbh = $pdo->prepare($sql);

    $dbh->execute( [

        ':serial' => $serial_number

    ]);


    if( ! $dbh->rowCount() ) {

        //insert


        $sql = "INSERT INTO serial VALUES ( :id, :serial)";

        $dbh2 = $pdo->prepare($sql);

        $dbh2->execute([

            ':id' => null,

           ':serial' => $serial_number

        ]);

        break;

    }

}


查看完整回答
反對 回復 2023-04-02
  • 1 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號