Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql तालिका में अद्वितीय ईमेल पते पर आधारित अद्वितीय कोड?

आशा है कि यह मदद करता है:

क) मैंने कुछ ऐसा ही किया जहां मैं अद्वितीय कोड उत्पन्न कर रहा था जिन्हें यूआरएल के रूप में इस्तेमाल किया जाना था। मैंने इसे कोड जेनरेट करने के लिए लिखा था:

private function _generateCode($length = 5) {

    $characters = 'bcdfghjkmnpqrstvwxyz';

    $string = '';
    for ($i = 0; $i < $length; $i++) {
        $string .= $characters[rand(0, strlen($characters) - 1)];
    }

    return $string;

}

$characters "अनुमत" वर्णों की एक स्ट्रिंग है। हमने स्वरों को हटाना चुना ताकि अवांछित शब्द बनाने का कोई मौका न मिले :) आप इसे बदल सकते हैं। इसे लिखने के और भी आसान तरीके हैं लेकिन हमें कुछ खास चाहिए।

आप इसे इस तरह इस्तेमाल करेंगे:

$unique_code = _generateCode();

ख) इसके लिए बस अपने इन्सर्ट स्टेटमेंट को एक सेलेक्ट स्टेटमेंट में लपेटें, उस यूनिक कोड की जाँच करें। यदि कोड मौजूद है तो दूसरा कोड जनरेट करें और पुन:प्रयास करें। ऐसा करने का एक तरीका है (एनबी:इसका परीक्षण नहीं किया गया है और यह एक अनंत लूप के लिए अतिसंवेदनशील हो सकता है यदि आप ऐसी स्थिति में आते हैं जहां आपने अपने सभी कोड का उपयोग किया है;) और आपको शायद एक चेक जोड़ना चाहिए यह सुनिश्चित करने के लिए कि INSERT सफल रहा):

$unique_code = "";
$inserted = false;
// Keep looping until we've inserted a record
while(!$inserted) {
    // Generate a code
    $unique_code = _generateCode();
    // Check if it exists
    if ($result = mysqli->query("SELECT unique_code FROM coming_soon_emails WHERE unique_code = '$unique_code'")) {
        // Check no record exists
        if ($result->num_rows == 0) {
            // Create new record
            $mysqli->query("INSERT INTO coming_soon_emails (email,unique_code) VALUES ('" . $mysqli->real_escape_string($_POST['email']) . "','$unique_code')");
            // Set inserted to true to ext loop
            $inserted = true;
            // Close the result object
            $result->close();
        }
    } else {
        // Quit if we can't check the database
        die('Something went wrong with select');
    }   
}

// Output the code
echo $unique_code;

सी) यूनिक कोड डालने के लिए बस इसे अपने इन्सर्ट स्टेटमेंट में जोड़ें जहां $unique_code वेरिएबल है जो ऊपर दिए गए फंक्शन से रिटर्न वैल्यू असाइन करता है:

$mysqli->query("INSERT INTO coming_soon_emails (email,unique_code) VALUES ('".$mysqli->real_escape_string($_POST['email'])."','$unique_code')");

डी) बस उस चर को प्रतिध्वनित करें जिसे आपने कोड दिया है जैसे:

echo $unique_code;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql और mysqli . के बीच अंतर

  2. PHP और MySQL उपयोगकर्ता नाम सबमिट समस्या

  3. फ़ंक्शन के लिए गलत डेटाटाइम मान str_to_date

  4. MySQL को AUTO_INCREMENT आईडी का पुन:उपयोग करना बंद करें

  5. मैंने एक MySQL कॉलम को NULL पर सेट किया है लेकिन फिर भी मैं एक खाली मान डाल सकता हूँ