2016-06-13 5 views
0

저는 MySQLi에서 꽤 새로 생겼습니다. 어떻게 대처할 지 잘 모르겠습니다. 모든 것이 잘 작동하는 것처럼 보일 수도 있으므로 조언을 환영합니다. SQLi 초보자 연결 및 닫기

나는 연결 파일의 클래스했다 : 지금까지

<?php 
class Connection{ 
var $hostname; 
var $hostnameStr; 
var $dbName; 
var $user; 
var $pswd; 
var $connectObj; 
function __construct(){ 
    $this->hostname = "127.0.0.1"; 
    $this->hostnameStr = "localhost"; 
    $this->user = "userName"; 
    $this->pswd = "mypassword"; 
} 
function connect2db($db){ 
    $this->dbName = $db; 
    $this->connectObj = new mysqli($this->hostnameStr,$this->user,$this->pswd); 
    $this->connectObj->set_charset('utf8'); 
    return $this->connectObj; 
    } 
} 
?> 

너무 좋은,하지만 그것은 아마 좋은 방법이 아니다. 다른 PHP 파일에서 은 내가 할 : 당신이 DB를 많이있을 때 데이터베이스에 연결하는 가장 좋은 방법

<?php 
      require_once("../../Connections/connection.php"); 
      $connect = new Connection(); 
      $connection = $connect->connect2db("myDbName"); 
      $result_test = $connection->query("SELECT * FROM test ORDER BY uid ASC"); 
      while ($row = $result_test->fetch_assoc()){ 
       echo "<p>" . $row['firstname'] . " " . $row['lastname'] . "</p>"; 
      } 
<?> 

인가? 연결을 닫으려고 할 때 모든 것이 올바르게 보입니다.

<?php 
    optional 
    echo "closed = " . ($connection->close()); 
    // this gives me true/1 
?> 

나는 이틀 전에 이것을 배우기 시작했기 때문에 이것은 분명치 않거나 전혀 터무니 없습니다. 모두 잘 작동하는 것처럼 보이지만 코드를보다 효율적으로 만들 수있는 여러 가지 방법이 있다고 확신합니다.

제안 사항?

결과를 표시 할 때 연결을 닫는 다른 방법이 있습니까? 코드의 밝은면에서 공부하고 있습니까? 아니면 이것만으로도 실수입니까?

진짜 초보자 질문이지만, 누군가 내게 기본을 설명 할 수 있기를 바랍니다.

예를 들어 보니 대신 PDO 요청을해야 하나? ???

$pdo = new PDO([params])... 

약간 혼란스러워!

PS : 나는 "WAMPSERVER"를 실행하지 않았고 내가 phpmyadmnin와 IIS7에서 일하고 있어요, PHP 5.3 (DLL)와 PHP 7.0.1 빠른 CGI, 스타터를 들어 윈도우 10

+0

Google about'singleton php database connection ' –

+0

사이드 노트 :'var' 키워드는 PHP/4 OOP 구문의 일부입니다. PHP/5.3조차도 지원되지 않습니다. 오래된 튜토리얼을 배우는 것은 초보자가 흔히하는 실수입니다. –

+0

내가 말한 또 다른 주제를 썼다. 대답은 "이 경우에는 싱글턴이 실제로 필요합니까?" 감사합니다. 감사합니다. Nicolas – tatactic

답변

1

, 수 있도록 당신의 같은 코드 :

<?php 
$hostname = "127.0.0.1"; 
$user = "userName"; 
$pswd = "mypassword"; 
$database = "myDbName"; 
$charset = "utf8"; 

$connection = new mysqli($hostname,$user,$pswd,$database); 
$connection->set_charset($charset); 

및 다른 파일

<?php 
require_once("../../Connections/connection.php"); 
$result_test = $connection->query("SELECT * FROM test ORDER BY uid ASC"); 
while ($row = $result_test->fetch_assoc()){ 
    echo "<p>" . $row['firstname'] . " " . $row['lastname'] . "</p>"; 
} 

에서 :

connection.php

connection.php 파일에서만 자격 증명을 변경함으로써 다른 사이트에서 동일한 코드를 사용할 수있게합니다.

그러나 좋은 조언을 위해 열려 있고 많은 문제를 피하려면 mysqli 대신 PDO를 사용하십시오. 여기에 제가 작성한 PDO tutorial이 있습니다.이 방법을 사용하면 올바른 방법으로 시작할 수 있습니다.

+1

이것은 내가 처음했던 방식이었습니다. 당신이 옳습니다. 제 수업은 완전히 쓸모가 없습니다. 나는 읽을 것이고, 시험해보고, 시험해 볼 것이고, 나는 다시 너에게 돌아갈 것이다. – tatactic

+0

좋습니다, 물어보십시오. –