【发布时间】:2014-04-10 15:49:32
【问题描述】:
如何检查数据库中是否已经存在数据($chassis,$pin),如果存在,我希望它返回一个错误,说“用户存在”。 我正在使用 json 来显示错误,现在使用下面的代码,即使数据库中已经存在机箱和引脚,数据也会被插入。
<?php
session_start();
require("config/config.php");
date_default_timezone_set('Asia/Calcutta');
if (isset($_POST['user_submit']))
$chassis = mysql_real_escape_string($_POST['chassis']);
$pin = mysql_real_escape_string($_POST['pin']);
$title = mysql_real_escape_string($_POST['title']);
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
$email = mysql_real_escape_string($_POST['email']);
$mobile = mysql_real_escape_string($_POST['mobile']);
$dob = mysql_real_escape_string($_POST['dob']);
$anniversary = mysql_real_escape_string($_POST['anniversary']);
$company = mysql_real_escape_string($_POST['company']);
$designation = mysql_real_escape_string($_POST['designation']);
$home_business = mysql_real_escape_string($_POST['home_business']);
$add1 = mysql_real_escape_string($_POST['add1']);
$add2 = mysql_real_escape_string($_POST['add2']);
$city = mysql_real_escape_string($_POST['city']);
$state = mysql_real_escape_string($_POST['state']);
$pincode = mysql_real_escape_string($_POST['pincode']);
$date = date('y.m.d h:i:s A');
$hostname = '';
$database = '';
$username = '';
$password = '';
$conn = mysql_connect($hostname, $username, $password);
if (!$conn) {
$json['error'] = "Unable to Connect server!" . mysql_error();
}
if (empty($json)) {
mysql_select_db($database) or die("Unable to select database!" . mysql_error());
$sql = mysql_query('SELECT chassis,pin FROM checking_chassis WHERE chassis="' . $chassis . '" && pin="' . $pin . '" ');
if (mysql_num_rows($sql) == 1) {
$sql1 = mysql_query('SELECT chassis,pin FROM taj_contact_info WHERE chassis="' . $chassis . '" && pin="' . $pin . '" ');
if (mysql_num_rows($sql1) == 1) {
$json['error'] = "User already exists";
exit();
} else {
$query = 'INSERT INTO taj_contact_info (chassis,pin,title,fname,lname,email,mobile,dob,anniversary,company,designation,home_business,add1,add2,city,state,pincode,date_added) VALUES("' . $chassis . '","' . $pin . '","' . $title . '","' . $fname . '","' . $lname . '","' . $email . '","' . $mobile . '","' . $dob . '","' . $anniversary . '","' . $company . '","' . $designation . '","' . $home_business . '","' . $add1 . '","' . $add2 . '","' . $city . '","' . $state . '","' . $pincode . '","' . $date . '")';
$sql1 = mysql_query($query);
$message = "Thank you for registering. You can indulge in the fine dining experience with the Taj gift certificate, which will reach you within 30 days. Team Purple Club";
$sms = "http://bulkpush.mytoday.com/BulkSms/SingleMsgApi?feedid=340479&UserName=&password=&sendername=PURPLE&To=" . $mobile . "&message=" . urlencode($message) . "";
$work = file_get_contents($sms);
$json['success'] = "Successfully inserted";
}
} else {
$json['error1'] = "Please enter valid chassis number and pin";
}
}
echo json_encode($json);
?>
Javascript
<script type="text/javascript">
$(document).ready(function (){
$("#user_submit_form").submit(function(){
var user_data = $("#user_submit_form").serialize();
var mobile = new Array();
mobile = $('#mobile').val().split("");
var pincode = new Array();
pincode = $('#pincode').val().split("");
if($('#chassis').val() =='')
{
alert('Please enter chassis');
}
else if ($('#pin').val() =='')
{
alert('Please enter pin');
}
else {
$.ajax({
type : "post",
url : "validate_user.php",
data : user_data,
dataType : "json",
success: function(json){
if(json.error)
{
alert(json.error)
}
else if(json.error1)
{
alert(json.error1)
}
else
{
alert(json.success)
/*location.reload();
window.location="http://clps.cequitysolutions.com/taj/thankyou.php";*/
}
}
});
}
});
});
function validateEmail(email)
{
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
</script>
【问题讨论】:
-
如果您在插入之前执行 SELECT 查询以检查是否存在具有用户名或电子邮件的任何用户,如果返回的行数大于 1,那么您可能会抛出错误,否则执行插入查询并向用户显示成功消息。
-
JavaScript 在哪里?
-
希望 PHP 缩进/结构现在更好,不是很可读:)