我在MySQLi中很新,我不确定如何处理它。 所以即使一切似乎都运转正常,欢迎提出建议。
我在连接文件中创建了一个类:
<?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>";
}
<?>
当你拥有大量数据库时,这是连接数据库的最佳方式吗? 当我试图关闭连接时,一切看起来也没问题。
<?php
optional
echo "closed = " . ($connection->close());
// this gives me true / 1
?>
两天前我开始学习这个,所以这可能不清楚或完全是胡说八道。一切似乎都很好,但我确信有不同的方法可以提高代码的效率。
有什么建议吗?
是否显示结果时关闭连接的另一种方法是什么? 我是在代码的光明面上学习还是这样做是错误的?
一个真正的新手问题,但我希望有人能够向我解释基础知识?!
我应该像我在一个例子中看到的那样提出PDO请求吗?
$pdo = new PDO([params])...
这里有点困惑!
PS:我没有运行“WAMPSERVER”,我正在使用phpmyadmnin,PHP 5.3(dll)和PHP 7.0.1作为Fast cgi,Windows 10开发IIS7。
答案 0 :(得分: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,它将帮助您以正确的方式开始使用它。