यदि/अन्यथा क्वेरी में शर्त है तो आपको पंक्ति गणना बदलनी होगी
स्क्रिप्ट
<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>
एचटीएमएल
<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 कोड कारण का उपयोग न करें rowCount()
काम नहीं कर सकता है इसलिए इसे छोड़ दें और उत्तर के नीचे कोड पर जाएं।
<?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';
}
}
?>
संपादित करें: जैसा कि @ जे ब्लैंचर्ड बहुत सुसंगत और मृत है, यह सुनिश्चित है कि उपरोक्त कोड काम नहीं करेगा
-
rowCount() सेलेक्ट स्टेटमेंट के लिए काम नहीं करता है। .com/a/31569733/1011527
-
नहीं, यह काम नहीं करेगा क्योंकि rowCount() सेलेक्ट स्टेटमेंट के लिए काम नहीं करता है। आपको पंक्ति गणना बिल्कुल नहीं मिल रही है।
-
$query->rowCount() को प्रतिध्वनित करने का प्रयास करें और आपको समस्या दिखाई देगी
और मुझे आश्चर्य होता है कि उपरोक्त कोड मेरे लाइव सर्वर पर कैसे काम कर रहा है जब ऐसा नहीं होना चाहिए तो मैंने कुछ खुदाई की और यह पाया;
और यह
उपरोक्त कथनों का स्रोत php.net मैनुअल
उपरोक्त दोनों कथनों में, कुछ डेटाबेस और अधिकांश डेटाबेस के लिए rowCount()
काम करता है लेकिन दूसरी तरफ
- पोर्टेबल एप्लिकेशन के लिए भरोसा नहीं करना चाहिए
- पीडीओस्टेटमेंट::fetchColumn() का उपयोग करके लौटाई जाने वाली पंक्तियों की संख्या प्राप्त करें। तब आपका आवेदन सही कार्रवाई कर सकता है।
चूंकि ओपी केवल पंक्तियों की गिनती चाहता है और सभी पंक्तियों के सभी डेटा को इस तरह भी नहीं किया जा सकता है। श्रेय @Jay Blanchard को जाता है
इस कोड उदाहरण का उपयोग करें
PHP में कुछ बदलाव किए, isset
use का उपयोग करें समारोह।
<?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';
}
}
?>