MySQLI

2012-06-23 5 views
0

내 쿼리의 행 수를 얻기 위해 노력하고있는 행의 납입을 가져하지만 라인이 아닌 개체의 속성을 얻기 위해 노력하는 나에게이 오류MySQLI

을주는 유지 (15)

<?php require_once("./includes/Utilities.php") ;?> 
<?php require_once("./includes/db_connection.php");?> 
<?php 
    if(isset($_POST['submit'])){ 
     $username = trim($_POST['username']); 
     $password = trim($_POST['password']); 
     $conf_pass = trim($_POST['conf_password']); 
     $email = trim($_POST['email']); 
     require_once('./includes/CheckPassword.php'); 
     $check_pwd = new Db_CheckPassword($password); 
     $check_pwd =$check_pwd->check(); 
     require_once('./includes/CheckUsername.php'); 
     $sql = "SELECT * FROM accounts WHERE username = {$username}"; 
     $result = $conn->query($sql); 
     $numRows = $result->num_rows; 
    } 
?> 

이 선 (15)

$numRows = $result->num_rows; 

가 왜 오류를 반환 구체적으로 무엇입니까?

+0

MySQLi를 사용하는 동안 준비된 문을 사용하지 않습니다! 이전 데이터베이스 드라이버에서 도입 된 것과 동일한 유형의 SQL 주입 취약점이 발생합니다! –

+0

쿼리를 실행하는 것보다 mysqli 저장 프로 시저의 차이점은 무엇입니까? – KyelJmD

+0

나는 저장 프로 시저를 말하지 않았다. ** [prepared statements] (http://il.php.net/manual/en/mysqli.quickstart.prepared-statements.php) ** –

답변

3

사용자 이름이 인용되지 않았기 때문에.

이 시도 : 쿼리에 따라서 $result 실제로 FALSE 포함 할 수있다 성공하면 당신은 확인되지

$sql = "SELECT * FROM accounts WHERE username = '{$username}'";