말 그대로 시간 인터넷 검색 및 검색과 내가 잘못 뭘하는지 모를 썼다. POST를 사용하고 phpMyAdmin에서 직접 쿼리를 시도했지만 작동했지만 PDO에서는 작동하지 않습니다. 이유를 모르겠습니다. 그것은 mysql_query를 사용할 때 효과적 이었지만 SQL 인젝션으로부터 자신을 보호하고 싶습니다.준비 PDO 쿼리는 0을 반환 영향을받는 행
는 여기에 내가 사용하고 코드입니다 :
<?php
if(isset($_POST['user']) and isset($_POST['pass'])) {
$name = $_POST['user'];
$pass = $_POST['pass'];
$db = new PDO('mysql:host=localhost;dbname=*****;charset=utf8', '*****', '*****');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $db->prepare("SELECT * FROM stored WHERE _User LIKE :username AND _Pass LIKE :password");
$query->bindValue(":username", $user, PDO::PARAM_STR);
$query->bindValue(":password", $pass, PDO::PARAM_STR);
$query->execute();
echo $query->rowCount();
}
?>
'대부분의 데이터베이스에서 PDOStatement :: rowCount()는 SELECT 문의 영향을받는 행 수를 반환하지 않습니다. 대신 PDO :: query()를 사용하여 원하는 SELECT 문과 동일한 조건자를 사용하여 SELECT COUNT (*) 문을 실행 한 다음 PDOStatement :: fetchColumn()을 사용하여 반환 할 행 수를 검색하십시오. 그런 다음 응용 프로그램은 올바른 동작을 수행 할 수 있습니다. 'http://php.net/manual/en/pdostatement.rowcount.php –
코드를 복사하십시오. 여러분이 쉽게 당신을 도울 수 있도록하십시오 : – Fluffeh
다른 모든 것을 제외하고 질문, ** 지구상에서 문자열 비교를 위해 LIKE를 사용하는 아이디어를 얻었습니까? ** –