일부 데이터를 검색하기 위해 일부 PHP 코드에 삽입 한 SQL 쿼리에 문제가 있습니다. 쿼리 자체는 SQL 내에서 완벽하게 작동하지만 PHP 스크립트 내에서 쿼리를 사용할 때 "쿼리의 오류"에 전체 SQL 문을 암송합니다. 오류 메시지의 SQL 문을 복사하여 MySQL에 직접 붙여 넣으면 오류없이 실행됩니다.SQL에서는 작동하지만 PHP에서는 작동하지 않는 쿼리
내 연구에서 어딘가에 아포스트로피가 없어서 PHP가 절을 혼동시킬 수는 있지만 필자는 어디에 삽입해야하는지 충분히 알지 못합니다.
이 쿼리는 앞에서 PHP 스크립트에서 지정한 $ userid라는 변수를 사용하고 있습니다.
$sql= <<<END
SELECT sum(final_price)
FROM (
SELECT Table_A.rated_user_id, Table_B.seller, Table_B.final_price
FROM Table_A
INNER JOIN Table_B ON Table_A.id=Table_B.id
) AS total_bought
WHERE seller != $userid
AND rated_user_id = $userid
UNION ALL
SELECT sum(final_price)
FROM (
SELECT Table_A.rated_user_id, Table_C.seller, Table_C.final_price
FROM Table_A
INNER JOIN Table_C ON Table_A.id=Table_C.id
) AS total_bought
WHERE seller != $userid
AND rated_user_id = $userid
END;
이 섹션이 끝난 후 스크립트는 출력을 정의하고 평소와 같이 필요한 부분을 에코합니다. 코드의 마지막 부분은 다른 곳에서도 작동하므로 만족 스럽지만 문제는 위 섹션에있는 것처럼 보입니다.
누구든지 오류를 발견 할 수 있습니까?
편집
은 다음과 같은 추가 정보를 추가 :필드의 모든 숫자 값이다, 아무도는 텍스트 없습니다. 나는 '$ userid'를 넣으려고했으나 오류 결과 내에서이 값을 중심으로 오류를 표시합니다. 문제는 동일하게 유지됩니다. parenthasis를 추가하는 것도 도움이되지 못했습니다. 나는 내 질문을 게시하기 전에 약간의 시행 착오를했다. 도움이된다면 다음과 같이
는, 사용되는 코드 bieng의 마지막 부분은 다음과 같습니다
내 생각$result = mysql_query($sql);
if (!$res) {
die('Error: ' . mysql_error() . ' in query ' . $sql);
}
$total_bought = 0;
while ($row = mysql_fetch_array($result)) {
$total_bought += $row[0];
}
$total_bought = number_format($total_bought, 0);
echo '<b>Your purchases: ' . $total_bought . '</b>';
echo "<b> gold</b>";
재미 & 일반적인 실수 :) – Dor