2016-06-13 65 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文件我做的:

<?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>"; 
      } 
<?> 

它是连接到一个数据库时,你有很多DB的最佳方式? 当我试图关闭连接时,一切看起来都没问题。

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

我两天前开始学习,所以这可能不清楚或完全废话。所有似乎都工作正常,但我相信有不同的方法可以使代码更有效率。

有什么建议吗?

是否显示结果时关闭连接的另一种方法? 我正在学习代码的明亮一面,或者这只是一个错误,因为这样工作?

一个真正的新手问题,但我希望有人能够解释我的基本知识?!

我应该做一个PDO请求,而不是像我看到这个例子?

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

有点困惑在这里!

PS:我没有跑 “WAMPSERVER” 和我的工作与IIS7 phpmyadmnin,PHP 5.3(DLL)和PHP 7.0.1为快速CGI时,Windows 10

+0

Google关于'singleton php数据库连接' –

+0

注意:'var'关键字是PHP/4 OOP语法的一部分。即使PHP/5.3不受支持。学习过时的教程是一个相当普遍的初学者错误。 –

+0

我写了另一个话题,我告诉了...... 答复是“你真的需要一个单身人士在这种情况下? 但是,我会谷歌它;) 感谢您的快速回复!!! 真诚尼古拉斯 – tatactic

回答

1

用于起动器,让你的像这样的代码:

connection.php:

<?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文件中修改它们的凭证即可。

但是,如果你是开放的好建议,并希望避免很多麻烦,去PDO而不是mysqli。这是我写的PDO tutorial,这将帮助你开始正确使用它。

+1

这是我首先做的,你说得对,我的课是完全没用的。 我会阅读,尝试,测试,然后我会回到你身边。 – tatactic

+0

好,随时问。 –