로그인 스크립트가 약간 있습니다.SQLSTATE [HY000] : PHP 및 PDO의 일반 오류
function login($sql) {
try {
$fbhost = "localhost";
$fbname = "foodbank";
$fbusername = "root";
$fbpassword = "";
$DBH = new PDO("mysql:host=$fbhost;dbname=$fbname",$fbusername,$fbpassword);
$DBH->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$STH = $DBH->query($sql);
$STH->setFetchMode(PDO::FETCH_ASSOC);
session_start();
if ($row = $STH->fetch()) {
$_SESSION['username'] = "$row[username]";
header("Location:index.php");
}
} catch(PDOException $e) {
echo $e->getMessage();
}
}
편집 :
index.php에 쿼리를 선택 삽입에서 위의 변경
$sql = "SELECT username from users where username = ". $_POST['username'] ." AND password = ". $_POST['password'] ."";
login($sql);
. 지금은 새로운 오류가 발생합니다 : SQLSTATE [42S22] : 발견되지 칼럼 : 1054 알 수없는 열 'pvtpyro'에서 제대로 데이터베이스에 연결되지 않은 것을 '절'
$ data 및 $ sql의 값은 무엇입니까? – ChristopheBrun
@Herode 하단에 코드를 추가했습니다 –
제 대답에 편집하십시오. SQL 인젝션으로부터 안전하지 않으므로 제공 한 SELECT 쿼리를 사용하지 마십시오. – stef77