2016-10-09 2 views
-1
나는 메시징 시스템을 만들

, 내 테이블 : 내 세션 userid (11) 어떻게 내 ID로 전송되는 모든 메시지를 표시하는 경우여기 내 온라인 메시징 시스템

(customers) userid int 11 primary key auto increment, username varchar 255, password varchar 255 

(messages) mid int 11 primary key auto increment, from_id index customer.userid, to_id index customer.userid, message text 

내 질문은?

올바른 코드는 무엇입니까?

$stmt = $con->prepare("SELECT 
             message.*, customer.username AS from_id 
            FROM 
             message 
            INNER JOIN 
             customer 
            ON 
             customer.userid = message.from_id 
            "); 

     $stmt->execute(); 

     $rows = $stmt->fetchAll(); 
+0

당신은 아마 문제는 쿼리에 대해 정말 같은 SQL로이 태그를합니다. 올바르게 조인을했는데 필터를 추가하지 않은 것 같습니다. 당신이해야 할 일은 끝에 customer.userid = 11을 추가하는 것입니다. – Cobusve

+0

다른 사용자 ID는 어때요? anothet 사용자 ID를 사용하여 로그인하는 방법은 무엇입니까? 해당 사용자 ID로 전송되는 모든 메시지를 표시하는 방법 –

+0

빠르고 더러운 방법은 사용자가 거기에서했던 것처럼 더 빠른 방법으로 문자열을 작성하는 것입니다. SQL 주입 취약점을 피하기 위해 매개 변수와 함께 준비된 문을 사용하십시오. 거기에 문자열의 끝에 추가 할 수 있습니다. "message.userid =". "11"; 당신의 ID가 무엇이든간에 11을 대체하십시오. 실제 변수를 사용하기에 충분한 코드를 제공하지 않았습니다. – Cobusve

답변

0

검색어에 "Where"절이 필요합니다. 끝에 "userid = 11"을 추가하면 위 질문에서 물어 본 것과 정확히 일치하게됩니다.

사용자 ID가 매개 변수 인 경우 다른 질문이기 때문에이 PAQ를 사용하는 방법에 대해 살펴야합니다.

How can I prevent SQL injection in PHP?