所以這個問題是,我想創建每當用戶按下登錄在數據庫中的值更改爲1,但每當我使用更新,我們得到一個servererror 500在登錄點擊ServerError 500更新MySQL表
<?php
require("inc/db.php");
ini_set('error_reporting', 0);
ini_set('display_errors', 0);
session_start();
if(isset($_POST['submit'])){
$errMsg = '';
//username and password sent from Form
$username = trim($_POST['username']);
$password = trim($_POST['password']);
if($username == '')
$errMsg .= 'You must enter your Username<br>';
if($password == '')
$errMsg .= 'You must enter your Password<br>';
if($errMsg == ''){
$records = $conn->prepare('SELECT id,username,password,email,bday,points,uid FROM users WHERE username = :username AND password = :password');
$records->bindParam(':username', $username) ;
$records->bindParam(':password', $password) ;
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
if($results > 0){
$sql = "UPDATE users SET isloggedin = :isloggedin WHERE username = :username";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':isloggedin', '1');
$stmt->execute();
$_SESSION['username'] = $results['username'];
$_SESSION['id'] = $results['id'];
$_SESSION['points'] = $results['points'];
$_SESSION['uid'] = $results['uid'];
header('location:dashboard.php');
}else{
$errMsg .= 'Username and Password are not found<br>';
}
}
}
?>
所以,UPDATE功能不能正常工作,我和我的朋友無法找到解決這個問題,我們試圖解決它,或者試圖改變行吧,但是毫無效果......
提前致謝!
我不使用PDO,但我的猜測是你需要在每個查詢中綁定:username參數。服務器500錯誤讓我擔心CGI也許會運行這個錯誤? – Josiah
你是怎麼調用這個例程的?阿賈克斯?錯誤500通常意味着存在PHP語法錯誤或者它期望的發佈數據沒有正確傳遞。 –
我注意到你沒有'bindParam(':username',$ username)',所以我懷疑PDO拋出了一個異常,因爲SQL語句中的參數個數和'execute'中實際可用的參數不一致)'。 –