2016-04-22 85 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

謝謝!我知道了 !! –

相關問題