2
我有一個登錄系統,但我不知道爲什麼數據輸入數據庫中,如果字符串長度大於set varchar maximum 。我在數據庫中設置了varchar(20),當我註冊一個新帳戶並且輸入了超過20個字符的用戶名字符串時,前20個字符被插入。如果字符串長度大於設定的最大值,爲什麼數據輸入數據庫
具體地說,accountOption.php文件是出了根文檔的,可以進行連接
這是動作功能:
function registerAccount($username,$password,$email){
global $db;
$sql = "INSERT INTO users (username,password,email) VALUES (:username,:password,:email)";
$stmt = $db->prepare($sql);
$stmt->execute(array(':username' => $username,':password'=>$password,':email'=>$email));
if ($stmt->rowCount() > 0){
$_SESSION['loggedIn'] = $username;
header("Location: ?page=loggedIn&message=Registered");
}else {
header("Location: ?page=register&message=Failed");
}
}
,這是form.php的
<?php
if(isset($_GET['message'])){
echo $_GET['message']."<br>";
}
?>
Please register:
<form action="?bpage=accountOptions&action=register&nonUI" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
Email: <input type="email" name="email"><br>
<br>
<input type="submit">
</form>
the connection.php
<?php
global $db;
$userdb="yyy";
$passworddb="xxx";
try {
$db=new PDO('mysql:host=localhost;dbname=dbname;',$userdb,$passworddb);
}catch(Exception $ex){
throw new Exception("Nu am reusit sa ne conectam la db");
}
?>
這就是MySQL默認情況下的工作方式。 –