[英]Inserting data into MySQL database using PDO
我是PHP和MySQL的新手,我正在嘗試將數據插入數據庫,在我嘗試使用PDO的prepare方法之前,它一直工作良好。 它返回catch錯誤,我不知道為什么-我還想知道使用未命名的占位符還是命名的占位符是最佳實踐?
用戶名和密碼變量是在我的代碼中定義的,並使用$_POST
捕獲來自用戶的數據。
編輯:getMessage()錯誤顯示SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'username' cannot be null
if (!empty($user) && (!empty($password)) ) {
try {
$results = $db->prepare("INSERT INTO user_info (username, pass) VALUES (?,?)");
$results->bindParam(1,$username);
$results->bindParam(2,$password);
$results->execute();
} catch (Exception $e) {
echo "Could not insert data in to the database";
}
}
您有兩個不同的變量名。 您正在檢查$user
,以確保它不是empty()
,然后告訴bind $username
到第一個參數。 您只需要重命名其中一個即可匹配另一個。
試試這個。
if (!empty($user) && (!empty($password)) ) {
try {
$results = $db->prepare("INSERT INTO user_info (username, pass) VALUES (?,?)");
$results->bindParam(1,$user);
$results->bindParam(2,$password);
$results->execute();
} catch (Exception $e) {
echo "Could not insert data in to the database";
}
}
請先嘗試一下該錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.