Anda harus mengubah jumlah baris jika / kondisi lain dalam kueri
Skrip
<script>
$(document).ready(function () {
$('#signup').validate({
errorLabelContainer: "#cs-error-note",
wrapper: "li",
rules: {
email: {
required: true,
email: true,
remote: {
url: "check-username.php",
type: "post"
}
}
},
messages: {
email: {
required: "Please enter your email address.",
email: "Please enter a valid email address.",
remote: "Email already in use!"
}
},
submitHandler: function(form) {
form.submit();
}
});
});
</script>
HTML
<form class="form-inline" role="form" id="signup">
<div class="form-group">
<label for="email">Email address:</label>
<input type="email" class="form-control" name="email" id="email">
</div>
</form>
PHP
Peringatan Jangan gunakan alasan kode PHP ini rowCount()
mungkin tidak berfungsi jadi lewati dan lompat ke kode di bagian bawah jawaban.
<?php
require('../../private_html/db_connection/connection.php');
$conn = new PDO("mysql:host=$servername; dbname=$dbname", $username, $password);
if(isset($_POST['email'])) {
$email = $_POST['email'];
$query = $conn->prepare("SELECT email FROM user_accounts WHERE email = '$email'");
$query->execute();
if( $query->rowCount() > 0 ){
echo 'false';
} else {
echo 'true';
}
}
?>
Sunting: Karena @Jay Blanchard sangat konsisten dan yakin bahwa kode di atas tidak akan berfungsi
-
rowCount() tidak berfungsi untuk pernyataan SELECT. stackoverflow .com/a/31569733/1011527
-
Tidak, ini tidak akan berfungsi karena rowCount() tidak berfungsi untuk pernyataan SELECT. Anda tidak mendapatkan jumlah baris sama sekali.
-
Coba ulangi $query->rowCount() dan Anda akan melihat masalahnya
dan membuat saya bertanya-tanya Bagaimana kode di atas bekerja di server langsung saya ketika seharusnya tidak, saya melakukan penggalian dan menemukan ini;
dan ini
Sumber pernyataan di atas manual php.net
Dalam kedua pernyataan di atas, beberapa database dan Untuk sebagian besar basis data rowCount()
berhasil tapi di sisi lain
- tidak boleh diandalkan untuk aplikasi portabel
- gunakan PDOStatement::fetchColumn() untuk mengambil jumlah baris yang akan dikembalikan. Aplikasi Anda kemudian dapat melakukan tindakan yang benar.
Karena OP hanya menginginkan jumlah baris dan tidak semua data dari semua baris, maka dapat juga dilakukan seperti ini. Kredit diberikan kepada @Jay Blanchard
Gunakan Contoh Kode Ini
membuat beberapa perubahan di PHP, gunakan isset
fungsi.
<?php
require('../../private_html/db_connection/connection.php');
$conn = new PDO("mysql:host=$servername; dbname=$dbname", $username, $password);
if(isset($_POST['email'])) {
$email = $_POST['email'];
$query = $conn->prepare("SELECT email FROM user_accounts WHERE email = '$email'");
$query->execute();
$rows = $query->fetchAll();
$total_rows = count($rows);
if( $total_rows > 0 ){
echo 'false';
} else {
echo 'true';
}
}
?>