2011-08-20 4 views
1

결과 테이블로 이동하는 SQL 쿼리가 있습니다.SQL 쿼리 PHP 파일에서 남용?

$php_variable_answer = "SELECT 
         answer_id 
         FROM result 
         WHERE question_id = $php_variable_question"; 
쿼리가 테이블에 응답하고 대답을 얻는 것보다 :

$php_variable_answer = "SELECT answer 
         FROM answer_table 
         WHERE answer_id = $php_variable_answer"; 

내 웹 사이트에 20 개의 PHP 파일이 있습니다. 나는 적어도 5 개 또는 8 개의 파일에서 대답을 얻으려면 매번이 세 가지 쿼리를 사용하고 있습니다.

내 질문 :

  • 어떻게이 코드를 한 곳에서 호출하여 모든 파일에서 재사용 할 수 있습니까? 그리고 심지어 가능하다면?
  • 두 번째로이 코드를 하나의 자리 표시자를 사용하여 다시 사용하는 것이 좋습니까? 어떤 차이가 있습니까?

답변

3

짧은 대답은 코드를 다시 사용하는 것이 좋은 아이디어이며, 더 효과적으로 물건을 더 잘 재사용 할 수 있다는 것입니다. (업데이트하기 쉽고 일을 일관되게 유지하는 등) 동일한 쿼리 또는 동일한 PHP를 재사용하는 경우 재사용 가능한 부분을 database.php과 같은 적절한 이름의 파일로 옮깁니다. 그런 다음 쿼리 기능을 필요로하는 모든 파일의 상단에이 줄을 추가 :

require_once('database.php');

이 가능한 기존의 기능과 쿼리를 만들 것입니다, 그래서 당신은 각각의 새로운에서 그들을 다시 작성할 필요가 없습니다 PHP 파일.

PHP 파일이 커지기 시작하면 프레임 워크를 사용하여 정리하고 효율적으로 유지하는 이점을 연구하기 시작할 수 있습니다. 프레임 워크는 사용할 수있는 코드 기반으로 구성을 유지하고 빌드 할 기존 코드를 제공 할 것을 권장합니다. 사용하고 싶은 PHP 프레임 워크는 CodeIgniter이며 많은 다른 것들이 있습니다.

+0

+1과 같이 할 수 있습니다. 나는 방금 [Symfony] (http://symfony.com)로 실험하기 시작했습니다. 지금은 항상 CodeIgniter를 사용했습니다. –

-1

간단하게하려면 항상 이러한 쿼리에 사용할 함수가 포함 된 도우미 파일을 만들어야합니다. 예 :

<?php 
/* qa_helper.php */ 

function get_question($q_id){ 
    // connect to db... 
    return mysql_result(mysql_query('SELECT answer_id from result where question_id = ' . $q_id),0); 
} 

function get_answer($a_id){ 
    // connect to db... 
    return mysql_result(mysql_query('SELECT answer from answer_table where answer_id = ' . $a_id),0); 
} 

그런 다음 파일에, 당신은 단순히 그것을 참조 :

<?php 
include_once('qa_helper.php'); 

$answer = get_answer(123); 
} 

이 방법은 구식 절차 PHP입니다. 코드 구성을 위해 Object-orientedMVC 프레임 워크를 살펴 보는 것이 좋습니다. CodeIgniter과 같은 간단한 것.

0

그것은 아마 어딘가에 함수에이를 넣어하는 것이 가장 것

너무 쉽게 2 개 쿼리를 필요로하지 수 귀하의 SQL ..

SELECT at.answer FROM result AS r 
LEFT JOIN answer AS at ON (at.answer_id = r.answer_id) 
WHERE r.question_id = $php_variable_question 

(그리고 당신이 그것을 필요로하는 기능을 포함) question_id를 미리 아는 경우