2013-11-20 3 views
0

안녕하세요 저는 이걸 함수 getTableResults에 넣으려고합니다. 나는 PHP에 익숙하지 않다.PHP에서 SQL을 작성하는 방법은 무엇입니까?

SELECT * 
FROM members 
INNER JOIN member_details 
ON members.member_id=member_details.member_id; 

필자는 비슷한 기능을 가지고 있지만이 기능을 기반으로하고 있지만 실제로는 SQL이 길어질수록 확실하지 않습니다.

function getResults($tablename) { 
    $sql = "SELECT * FROM " . $tablename; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
return $ResultSet; 
} 

이 그것을 수 있을까요?

function getResults($tablename) { 
    $sql = "SELECT * 
      FROM members 
      INNER JOIN member_details 
      ON members.member_id=member_details.member_id; " . $tablename; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
return $ResultSet; 
} 
+1

이 실제로 매우 기본적인 mysqli 사용하는 방법에 대한 예는이 사이트를 참조하십시오. 이 모든 것을 시도하지 않은 것이 확실합니까? –

+0

PHP는 SQL에 대해 아무것도 알지 못합니다. PHP에서 SQL로 쓰는 것은 다른 일반 텍스트 문자열을 쓰는 것과 똑같습니다. –

+0

그러나 나는 함수의 첫 번째 줄을 확신하지 못했습니다. –

답변

4
function getTableResults() { 
    $sql = "SELECT * FROM members INNER JOIN member_details ON Members.member_id=member_details.member_id"; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
return $ResultSet; 
} 

기본적으로 $ sql 변수에서 SQL 쿼리를 변경합니다.

참고 :이 함수는 매우 특정한 SQL 쿼리를 사용 했으므로 이제는 tablename을 허용하지 않습니다.

+1

아니요 성명서에 세미콜론을 넣지 마십시오. – Woot4Moo

+0

복사/붙여 넣기에서 그 내용을 잡지 못했습니다. 당신이 올바른지. – user3012708

3

확인이

function getTableResults() { 
    $sql = "SELECT * 
      FROM members 
      INNER JOIN member_details 
      ON members.member_id=member_details.member_id"; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
    return $ResultSet; 
} 

편집 : 질문에 편집 후

Would this be it

없음 당신이하려고하는 것은 CONCAT하기 때문에 .. 쿼리에서 테이블 이름을 enating

details.member_id; " . $tablename; < -이 작업을 수행 할 수 없습니다 ..

이 (당신이 매개 변수을에서 $ tablename에로 members을 보내는 경우 )를 쿼리에 ON members.member_id=member_details.member_id; members처럼 보이게됩니다

+0

이 작업은 테이블 멤버를 선택하고 멤버 세부 정보에 모두 참여하여 member_id와 일치하는 부분을 선택하는 것입니다. –

+1

감사합니다. –

+0

예 .. 당신이 쿼리를 작성하기 때문에 .. – zzlalani

2
function getTableResults(){ 
$sql = "SELECT * FROM members 
     INNER JOIN member_details 
     ON members.member_id=member_details.member_id"; 

$mysqlConnection = getSQLConnection(); 
$ResultSet = $mysqlConnection->query($sql); 

return $ResultSet; 
} 

mysql의 기능은 더 이상 사용되지 않습니다. 대신 mysqli를 사용해야합니다. PHP.net says은 앞으로 mysql 함수가 제거 될 것이므로 지금 전환해야합니다. 실제로, mysql의 코드와 mysqli의 코드에는 거의 차이가 없다. http://www.php.net/manual/en/mysqli.query.php

+0

머리말처럼'$ mysqlConnection'은'mysql_ *'함수 계열 (더 이상 사용되지 않음)과 관련이없는 PDO 래퍼처럼 보입니다. 또한, 약간의 오자 :'$ mysqlConnection'에 할당하지만'$ mysqliConnection'을 사용하십시오 –

+0

좋은 캐치. 편집 됨. – Benjamin

1

사용 그것은이 같은 뭔가를 찾고 끝낼 것이 코드

<?php 

$con=mysqli_connect("example.com","peter","abc123"); 

// Check connection 


if (mysqli_connect_errno()) 

     { 


echo "Failed to connect to MySQL: " . mysqli_connect_error(); 

    } 
// Create database 
$sql="SELECT * 
FROM members 
INNER JOIN member_details 

ON members.member_id=member_details.member_id"; 

if (mysqli_query($con,$sql)) 
{ 

echo "Database my_db created successfully"; 

    }else{ 

echo "Error creating database: " . mysqli_error($con); 

}?> 
1

:

function getResults($tablename) { 
    $sql = "SELECT * FROM members" 
      . " INNER JOIN member_details" 
      . " ON members.member_id=member_details.member_id"; 
    $mysqlConnection = getSQLConnection(); 

    $ResultSet = $mysqlConnection->query($sql); 
    return $ResultSet; 
} 
관련 문제