2012-09-21 2 views
0

내가 문제를 올 OOP 멀리 stright에 처음으로 데이터베이스에 연결 한있는 데이터베이스 쿼리, 아래의 난과 사투를 벌인거야 내 코드입니다 db에 연결할 때 오류가 발생하고 정상적으로 작동하지만이 쿼리를 실행할 때 출력이 나오지 않습니다. 이유는 무엇입니까? 나는 실수를했거나 "일했다"고 예상했으나 둘 중 하나도 얻지 못했습니다.는 OOP

무슨 일입니까?

+0

'$ sqli-> 쿼리()'의 반환 값은 무엇인가? – andrewsi

답변

0

나는 도움이되는 소스 코드의 일부 의견을 뒀다 :

$q = 'SELECT * FROM test'; 
    //$sqli is the result of a 
    //new mysqli("localhost", "user", "password", "database"); 
    $resource = $sqli->query($q); // this returns a resource or false 

    if(!$resource) { 
     echo $sqli->error; 
     die; // do not process further 
    } 

    // process the results 
    $rows = $resource->fetch_all(); 
    if ($rows) { // check if there are rows 
    echo "worked";    
    } 
    else { 
    echo "query is ok, but there are no rows"; 
    } 
+0

죄송합니다. 마침내 실현 한 바를 깨달았습니다. 브라우저에서 페이지를 테스트 할 때 이미 연결 페이지를 테스트하고 있었지만 문제가 없었습니다. 내가 잠 들어있을 때 코드 작성법을 배우려고 시도해서는 안된다. 칭찬하지 않으려 고 죄송합니다. 습관에 빠지려고합니다. – tony09uk

0

당신은 또한 사용할 수 $ 자원 -> fetch_object() 출력을 위해 개체를 반환한다. 당신이 결과 집합에서 특정 데이터를 인쇄하려는 경우 따라서, 당신은 당신이 방법을 사용할 수 있습니다

0

,

//table test.Name and test.Country 
while ($rowobj = $resource->fetch_object()){ 
      printf ("%s (%s)\n", $rowobj->Name, $rowobj->Country); 
     } 

행운처럼 뭔가를 할 것이다, 나는 당신이 찾고있는 무엇 바랍니다. 먼저 DB를 정의해야합니다. 그런 다음 OOP로 연결하고 연결이 true인지 또는 exit()를 테스트 할 수 있습니다.

이 기능이 작동하는지 알려주세요. 또한 외부 파일에 DB를 정의하고 include(); DB에 연결해야하는 모든 페이지의 스크립트 상단으로 이동합니다.

define("SERVER","IP Address"); 
define("USER","DB USERNAME"); 
define("PASSWORD","DB PASSWORD"); 
define("DATABASE","DB NAME"); 

// This is for connection $mysqli = new mysqli(SERVER, USER, PASSWORD, DATABASE); if ($mysqli->connect_errno) { echo "Connection to MySQL failed: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; exit(); }