2016-04-22 87 views
0

我每次尝试填写表单和字段时都会遇到问题联系电话&电话号码自动生成自己的静态编号。每一次当我给了“独一无二”的,以我的钥匙“Contact_no”它产生的错误这种“带有消息'SQLSTATE [23000]'的PDOException:完整性约束违规:1062''contact_no''重复条目'2147483647'

异常‘PDOException’有消息“SQLSTATE [23000]:完整性 约束冲突:1062重复条目‘2147483647’对于密钥 'contact_no''在C:\ wamp \ www \ ipsem6 \ connectivity.php:34堆栈跟踪: 0 C:\ wamp \ www \ ipsem6 \ connectivity.php(34):PDO-> exec('INSERT INTO A8 ...')#1 {}主`”

下面是我的我的register.php页面的代码

<html> 
<head> 

<title>Register</title> 
<style> 

.content:before { 
content: ""; 
position: fixed; 
left:34px; 
right:0; 
top:90px; 
bottom:20px; 
z-index: -1; 

display: block; 
background-image: url('assets/img/cd.JPG'); 
width: 1281px; 
height: 8000px; 


-webkit-filter: blur(5px); 
-moz-filter: blur(5px); 
-o-filter: blur(5px); 
-ms-filter: blur(5px); 
filter: blur(5px); 
} 

.content { 
overflow: auto; 
position: static; 

left: 0; 
right: 0; 
z-index: 0; 
margin-left: 0; 
margin-right: 0; 
} 

</style> 
<link rel="STYLESHEET" type="text/css" href="style/fg_membersite.css" /> 
<script type='text/javascript' src='scripts/gen_validatorv31.js'></script> 
<link rel="STYLESHEET" type="text/css" href="style/pwdwidget.css" /> 
<script src="scripts/pwdwidget.js" type="text/javascript"></script> 
<link rel="stylesheet" href="style/style1.css" type="text/css" />  
</head> 
<body class="body" > 
<div class="content"> 
<header class="mainheader" > 

<div class="canmenu"> 

<div class="left mtop10"><a href="http://www.chitkara.edu.in/" title=""  rel="home"> 
<img src="assets/img/chitkara_logo.png" /></a> 
    </div> 
    <div id="cssmenu"> 
     <nav><ul> 
      <li><a href="index.html"><span><b>Home</b></span></a></li> 

      <li><a href="#"><span><b>About Us</b></span></a></li> 

      <li><a href="login.html"><span><b>Login</b></span></a></li> 

      <li class="active"><a href="register.php"><span><b>Register</b> </span></a></li> 

      <li class="last"><a href=""><span><b>Contact us</b></span></a></li> 
     </ul></nav> 
    </div> 

    <!--<div class="can-menu"> 
       </div>--> 
</div> 
</div> 
<!-- Form Code Start --> 

<center><div id='fg_membersite' > 
<form id='register' method='post' action="connectivity.php" accept-charset='UTF-8' > 

<br> 
<br> 


<fieldset > 

<legend><h1><font size="40" color="BLACK"><b><center><img src="assets/img/canfinal1.jpg" height="100px" width="150px"/><font color="WHITE">Register</font></b></font></h1></legend> 

<input type='hidden' name='submitted' id='submitted' value='1'/> 

<div class='short_explanation'><font size="2" color="RED"><b>* required fields</b></font></div> 
<input type='text' class='spmhidip' /> 

<div><span class='error'> </span></div> 
<div class='container'> 
<label for='name' ><font color="WHITE">Your Full Name<font color="RED"><b>*</b></font> :</label><br/> 
<input type='text' name='name' id='name' maxlength="50" /><br/> 
<span id='register_name_errorloc' class='error'></span> 
</div> 
<div class='container'> 
<label for='email' ><font color="WHITE">Email Address<font color="RED"><b>*</b></font> :</label><br/> 
<input type='text' name='email' id='email' maxlength="50" /><br/> 
<span id='register_email_errorloc' class='error'></span> 
</div> 
<div class='container'> 
<label for='username' ><font color="WHITE">UserName/University Id<font color="RED"><b>*</b></font> :</label><br/> 
<input type='text' name='username' id='username' maxlength="50" /><br/> 
<span id='register_username_errorloc' class='error'></span> 
</div> 

<div class='container'> 
<label for='contacts1' ><font color="WHITE">Contact No.<font color="RED"><b>*</b></font> :</label><br/> 
<input type='phone' name='contacts1' id='contacts1' /><br/> 

</div> 

<div class='container'> 
<label for='contact2' ><font color="WHITE">Phone No. :</label><br/> 
<input type='tel' name='contact2' id='contact2' /><br/> 

</div> 


<div class='container' > 
<label for='password' ><font color="WHITE">Password<font color="RED"><b>*</b></font> :</label><br/> 
<div class='pwdwidgetdiv' id='thepwddiv' ></div> 
<noscript> 
<input type='password' name='password' id='password' maxlength="50" /> 
</noscript>  
<div id='register_password_errorloc' class='error' style='clear:both'></div> 
</div> 





<div class='container'> 
<label for='date' ><font color="WHITE">Date of Birth<font color="RED"><b>*</b></font> :</label><br/> 
<input type='date' name='dats' id='dats' maxlength="50" /><br/> 
<span id='register_username_errorloc' class='error'></span> 
</div> 

<div class='container' > 
<label><font color="WHITE">Role<font color="RED"><b>*</b></font> :</label> 
<select name='rle' id='rle' maxlength="50" > 
<option value="Alumni">Alumni</option> 
<option value="Mentor">Mentor</option> 
<option value="H.O.D">H.O.D</option> 

</select> 
<span id='register_username_errorloc' class='error'></span> 


</div> 

<div id="q1" class="form-group"> 
<label><font color="WHITE">Gender<font color="RED"><b>*</b></font> :</label> 
<select class="form-control" id="s" name="s"> 
<option value="Male" >Male</option> 
<option value="Female">Female</option> 
</div> 
</select> 



<div class='container'> 
<input type='submit' name='Submit' value='Submit' color="blue" /> 
</div> 

</fieldset> 
</form> 
<!-- client-side Form Validations: 
Uses the excellent form validation script from JavaScript-coder.com--> 

<script type='text/javascript'> 
// <![CDATA                       
var pwdwidget = new PasswordWidget('thepwddiv','password'); 
pwdwidget.MakePWDWidget(); 

var frmvalidator = new Validator("register"); 
frmvalidator.EnableOnPageErrorDisplay(); 
frmvalidator.EnableMsgsTogether(); 
frmvalidator.addValidation("name","req","Please provide your name"); 

frmvalidator.addValidation("email","req","Please provide your email address"); 



frmvalidator.addValidation("username","req","Please provide your University ID."); 

frmvalidator.addValidation("password","req","Please provide a password"); 

frmvalidator.addValidation("date","req","Please provide your D.O.B"); 

// ]]> 
</script> 

<!-- 
Form Code End 
--> 

</div> 
</body> 

</html> 

下面是我connectivity.php的代码

<?php 
// DATABASE CONNECTIVITY & UPLOADING ----> 
$connection_error = 'Could Not Connect to server.'; 
$connection_error2 = 'Could Not Connect to database.'; 

$host = 'localhost'; 
$user = 'root'; 
$password = ''; 
$database = 'a8172058_portal'; 
$dsn = "mysql:host=$host;dbname=$database"; 
try { 
    $conn = new PDO($dsn, $user, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 




     $name=$_POST["name"]; 
     $email=$_POST["email"]; 
     $username=$_POST['username']; 
     $pass=$_POST['password']; 
     $contactno=$_POST['contacts1']; 
     $cont2=$_POST['contact2']; 
     $dob=$_POST['dats']; 
     $role=$_POST['rle']; 
     $gender=$_POST['s']; 




     $sql= "INSERT INTO `a8172058_portal`.`users` (email,univ_id,password,full_name,role,gender,contact_no1,contact_no2,dob) 
     VALUES ('$email','$username','$pass','$name','$role','$gender','$contactno','$cont2','$dob');"; 

     $conn->exec($sql); 
      print "<meta http-equiv=\"refresh\" content=\"0;URL=form1.html\">"; 
     } 
      catch(PDOException $e) 
      { 
       print ($e); 
       //print "<meta http-equiv=\"refresh\" content=\"0;URL=error.html\">"; 
       } 

      $conn = null; 




    ?> 

请帮我解决这个问题。我的DM是 enter image description here

无论我给它什么样的值,总是会给出下图中标记的静态值。 enter image description here

+1

这两个字段的类型和长度是什么?发生这种情况的原因是数字超出了给予该列的长度。那么它会自动转换为一些有线整数,你会得到。有一次,我也遇到了它。 –

+0

contact_no1 = int(10)&contact_no2 = int(11) –

+1

在'int(11)'中将两者都更改为一次或者对于这两列都使用'varchar(256)'尝试一次。 –

回答

2

实际上,如果给定数量超出相应列的长度,则会发生此类问题。

正如你所说,这两列都是int(10) and int(11)。所以去varchar(256)

注意:由于它是电话号码,所以你可以去varchar但是如果你有任何整数你要做一些计算然后去bigint。谢谢。

+0

但int(11)没有工作,并添加电话号码= 9530803237! –

+0

@AshishBharwal是的,我知道这就是为什么我建议varchar' –

+0

好了! Thanx再次:) BIGINT(11)的作品也! –

3

数字2147483647是可存储在4字节整数字段中的最大的10位正整数。

您应该使用更大的字段类型,例如BIGINT,但对于这种特殊情况,我建议使用VARCHAR。这是一个电话号码,不是你需要用数学计算的实际整数。

P.S:您应该真的使用pepared statements来保护您的应用程序免受SQL注入等威胁。在将其插入数据库之前,您应该始终对密码进行哈希处理。

+0

谢谢!我知道了 !! –

相关问题