Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara memeriksa apakah ada baris di MySQL? (yaitu memeriksa apakah ada email di MySQL)

Berikut ini adalah metode yang dicoba, diuji, dan terbukti untuk memeriksa apakah ada baris.

(Beberapa di antaranya saya gunakan sendiri, atau pernah digunakan di masa lalu).

Sunting: Saya membuat kesalahan sebelumnya dalam sintaks saya di mana saya menggunakan mysqli_query() dua kali. Silakan berkonsultasi dengan revisi.

yaitu:

if (!mysqli_query($con,$query)) yang seharusnya hanya dibaca sebagai if (!$query) .

  • Saya minta maaf karena mengabaikan kesalahan itu.

Catatan tambahan: Keduanya '".$var."' dan '$var' melakukan hal yang sama. Anda dapat menggunakan salah satunya, keduanya adalah sintaks yang valid.

Berikut adalah dua kueri yang diedit:

$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

}

dan dalam kasus Anda:

$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

}

Anda juga dapat menggunakan mysqli_ dengan pernyataan siap metode:

$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;

            }
        }
    }

Atau metode PDO dengan pernyataan siap :

<?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.";
    }


    }
?>
  • Pernyataan yang disiapkan paling baik digunakan untuk membantu melindungi dari injeksi SQL.

N.B.:

Saat menangani formulir dan larik POST seperti yang digunakan/diuraikan di atas, pastikan bahwa larik POST berisi nilai, bahwa metode POST digunakan untuk formulir dan mencocokkan atribut bernama untuk input.

  • FYI:Bentuk default ke metode GET jika tidak diinstruksikan secara eksplisit.

Catatan:<input type = "text" name = "var"> - $_POST['var'] cocok. $_POST['Var'] tidak cocok.

  • Array POST peka huruf besar-kecil.

Konsultasikan:

Kesalahan saat memeriksa referensi:

Harap perhatikan bahwa API MySQL tidak bercampur, jika Anda mungkin mengunjungi T&J ini dan Anda menggunakan mysql_ untuk terhubung dengan (dan bertanya dengan).

  • Anda harus menggunakan yang sama untuk menghubungkan ke kueri.

Konsultasikan hal berikut tentang ini:

Jika Anda menggunakan mysql_ API dan tidak punya pilihan untuk bekerja dengannya, lalu lihat T&J berikut di Stack:

mysql_* fungsi tidak digunakan lagi dan akan dihapus dari rilis PHP mendatang.

  • Saatnya memasuki abad ke-21.

Anda juga dapat menambahkan batasan UNIK ke (a) baris.

Referensi:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gambaran Umum Replikasi Silang PostgreSQL &MySQL

  2. Pernyataan yang disiapkan WordPress dengan kondisi IN()

  3. Beberapa pernyataan pilih dalam permintaan tunggal

  4. Bagaimana melakukan pemeringkatan yang dikelompokkan di MySQL

  5. Cara Mendapatkan Hari Terakhir Bulan Ini di MySQL