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

कैसे जांचें कि MySQL में कोई पंक्ति मौजूद है या नहीं? (यानी जांचें कि कोई ईमेल MySQL में मौजूद है या नहीं)

एक पंक्ति मौजूद है या नहीं, यह जांचने के लिए निम्नलिखित आजमाए गए, परीक्षण किए गए और सिद्ध तरीके हैं।

(जिनमें से कुछ का मैं स्वयं उपयोग करता हूं, या अतीत में उपयोग कर चुका हूं)।

संपादित करें: मैंने अपने सिंटैक्स में पिछली त्रुटि की थी जहां मैंने mysqli_query() . का उपयोग किया था दो बार। कृपया संशोधन देखें।

यानी:

if (!mysqli_query($con,$query)) जिसे केवल if (!$query) . के रूप में पढ़ना चाहिए था ।

  • उस गलती को नज़रअंदाज़ करने के लिए मैं क्षमा चाहता हूं।

साइड नोट: दोनों '".$var."' और '$var' वहीं काम करें। आप दोनों में से किसी एक का उपयोग कर सकते हैं, दोनों मान्य सिंटैक्स हैं।

यहाँ दो संपादित प्रश्न हैं:

$query = mysqli_query($con, "SELECT * FROM emails WHERE email='".$email."'");

    if (!$query)
    {
        die('Error: ' . mysqli_error($con));
    }

if(mysqli_num_rows($query) > 0){

    echo "email already exists";

}else{

    // do something

}

और आपके मामले में:

$query = mysqli_query($dbl, "SELECT * FROM `tblUser` WHERE email='".$email."'");

    if (!$query)
    {
        die('Error: ' . mysqli_error($dbl));
    }

if(mysqli_num_rows($query) > 0){

    echo "email already exists";

}else{

    // do something

}

आप mysqli_ का भी इस्तेमाल कर सकते हैं तैयार बयान के साथ विधि:

$query = "SELECT `email` FROM `tblUser` WHERE email=?";

if ($stmt = $dbl->prepare($query)){

        $stmt->bind_param("s", $email);

        if($stmt->execute()){
            $stmt->store_result();

            $email_check= "";         
            $stmt->bind_result($email_check);
            $stmt->fetch();

            if ($stmt->num_rows == 1){

            echo "That Email already exists.";
            exit;

            }
        }
    }

या पीडीओ विधि तैयार बयान के साथ :

<?php
$email = $_POST['email'];

$mysql_hostname = 'xxx';
$mysql_username = 'xxx';
$mysql_password = 'xxx';
$mysql_dbname = 'xxx';

try {
$conn= new PDO("mysql:host=$mysql_hostname;dbname=$mysql_dbname", $mysql_username, $mysql_password); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
     exit( $e->getMessage() );
}

// assuming a named submit button
if(isset($_POST['submit']))
    {

        try {
            $stmt = $conn->prepare('SELECT `email` FROM `tblUser` WHERE email = ?');
            $stmt->bindParam(1, $_POST['email']); 
            $stmt->execute();
            while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

            }
        }
        catch(PDOException $e) {
            echo 'ERROR: ' . $e->getMessage();
        }

    if($stmt->rowCount() > 0){
        echo "The record exists!";
    } else {
        echo "The record is non-existant.";
    }


    }
?>
  • तैयार किए गए कथन SQL इंजेक्शन से बचाने में मदद करने के लिए सबसे अच्छे हैं।

नायब:

प्रपत्रों और POST सरणियों के साथ व्यवहार करते समय जैसा कि ऊपर उपयोग/उल्लिखित किया गया है, सुनिश्चित करें कि POST सरणियों में मान हैं, कि POST विधि का उपयोग प्रपत्र के लिए और इनपुट के लिए नामित विशेषताओं के मिलान के लिए किया जाता है।

  • FYI करें:यदि स्पष्टीकरण का निर्देश नहीं दिया गया है तो फ़ॉर्म GET पद्धति के लिए डिफ़ॉल्ट हैं।

नोट:<input type = "text" name = "var"> - $_POST['Var'] मिलान। $_POST['Var'] कोई मुकाबला नहीं।

  • POST सरणियाँ केस-संवेदी हैं।

परामर्श करें:

संदर्भों की जाँच में त्रुटि:

कृपया ध्यान दें कि यदि आप इस प्रश्नोत्तर पर जा रहे हैं और आप mysql_ का उपयोग कर रहे हैं, तो MySQL API इंटरमिक्स नहीं करते हैं। के साथ कनेक्ट करने के लिए (और साथ पूछताछ)।

  • कनेक्ट करने से लेकर क्वेरी करने तक आपको उसी का उपयोग करना चाहिए।

इसके बारे में निम्नलिखित से परामर्श करें:

यदि आप mysql_ . का उपयोग कर रहे हैं एपीआई और इसके साथ काम करने का कोई विकल्प नहीं है, तो स्टैक पर निम्नलिखित प्रश्नोत्तर देखें:

mysql_* फ़ंक्शंस बहिष्कृत हैं और भविष्य के PHP रिलीज़ से हटा दिए जाएंगे।

  • 21वीं सदी में कदम रखने का समय आ गया है।

आप (a) पंक्ति(पंक्तियों) में एक UNIQUE बाधा भी जोड़ सकते हैं।

संदर्भ:



  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 इंस्टॉल करें

  2. उपयोगकर्ता खाता प्रबंधन, भूमिकाएँ, अनुमतियाँ, प्रमाणीकरण PHP और MySQL -- भाग 5

  3. MySQL - LIKE का उपयोग करके सटीक शब्द मिलान की खोज कैसे करें?

  4. मायएसक्यूएल प्रश्न

  5. PHP और MySQL के साथ एक न्यूज़लेटर सिस्टम बनाएँ