내가 PRODUCT_CATEGORY가 연결 테이블 인과 제품, PRODUCT_CATEGORY 및 카테고리라는 세 개의 테이블을 조인.PHP의 SQL - 세 개의 테이블
어떻게 PHP에서 SQL을 사용하여이 테이블을 가입 할 수 있습니까?
는 연결 테이블은 제품의 테이블에 링크 된 제품 ID 및 범주에 연결 CATID있다.
내가 PRODUCT_CATEGORY가 연결 테이블 인과 제품, PRODUCT_CATEGORY 및 카테고리라는 세 개의 테이블을 조인.PHP의 SQL - 세 개의 테이블
어떻게 PHP에서 SQL을 사용하여이 테이블을 가입 할 수 있습니까?
는 연결 테이블은 제품의 테이블에 링크 된 제품 ID 및 범주에 연결 CATID있다.
이런 식으로 뭔가? 추가 변수에서 productId에와 카테고리 ID가되어야한다는 요구 사항 :
SELECT
*
FROM
product
INNER JOIN
product_category
ON product_category.productID = product.productID
INNER JOIN
category
ON category.catID = product_category.catID
귀하의 질의는 다음과 같이 보일 것이다
$query = "SELECT * FROM
product p
JOIN product_category pc ON p.id = pc.productId
JOIN category c ON c.id = pc. categoryId
WHERE p.id = {$productId}
AND c.id = {$categoryId}";
추가 요구 사항은이 SQL 주입 공격에 열려있는 예이다 다른 대답 – Nanne
에 주석으로 게시 @Dems. 이 방법을 사용하기 전에 해당 내용을 읽어보십시오. 필자는 사용자가 매개 변수를 제공 한 경우 이러한 방식으로 실행하기 위해 직접 SQL 쿼리를 작성하지 마십시오. – MatBailie
그런 식으로 조금만 더 해보았으니, 이런 식으로 kneejerk 반응을 추가하지 마십시오. 당신의 vars가 사전에 숫자로되어 있는지 (왜 쿼리 안에서 그렇게하고 싶습니까?) 또는 다른 형태의 sanitize를 수행한다면, SQL Injections 공격에는 열리지 않습니다. – Nanne
좋아하지만 어떻게 내가 제품 및 카테고리를 복용하여이를 사용할 수 있습니다 PHP 변수에서. – Chris
먼저 Prepared Statements를 PHP로 작성하는 방법을 찾아야합니다. 이를 통해 남용 될 수없는 안전한 방법으로 SQL 코드에 매개 변수를 제공 할 수 있습니다 (SQL 주입 공격 조회). * WHERE product.productID = : 제품 ID * – MatBailie
http://stackoverflow.com/questions/60174/best-way-to-stop-sql-injection-in-php – MatBailie