我在使用mysqli_connect时遇到了一些问题,就像我使用mysql_connect一样
这将是我的代码的一个例子:
QUERY.PHP
class classQuery{
public function __construct(){
require('conex/classConex.php');
require('conex/statement/classStatement.php');
$this->ObjConex = new classConex;
$this->ObjStatement = new classStatement;
}
public function Query($email){
$this->ObjConex->Conex();
$query='SELECT user_email from table where email='.mysql_real_escape_string($email).'';
$consulta = $this->ObjStatement->Select($query);
return $consulta;
}类语句
class classStatement{
public function __construct(){
$this->ObjConex = new classConex;
}
public function Select($query){
$query_execute = mysql_query($query);
while($row = mysql_fetch_row($query_execute)){
$consulta=htmlentities($row[0]);
}
return $consulta;
}
}类CONEX
class classConex{
public function Conex(){
require ('conex.php');
mysql_connect ($server,$dbuser,$dbpasswd) or die('Error de Conexión');
mysql_select_db($dbname);
}
}好的,现在我想使用mysqli_connect而不是mysql_connect,根据php手册,我的新连接类应该如下所示:
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
既然我的连接是一个对象,我将无法以相同的方式从ClassStatement执行我的查询,我已经测试了从connect类返回这个对象,但这意味着更多的代码,我在那里找到了一种更优雅的方法来完成这个任务?
发布于 2012-08-29 22:43:48
这样安排你的班级怎么样:
class Database {
public function __construct ( $server, $dbuser, $dbpasswd, $dbname ) {
$this->dbhandle = new mysqli($server, $dbuser, $dbpasswd, $dbname);
}
public function Select ($query) {
$result = $this->dbhandle->query($query);
while ( $row = $result->fetch_row() ){
// Whatever you're doing here...
//$consulta = htmlentities($row[0]);
}
return $consulta;
}
}因此,您可以在下面的代码中使用它:
class Query{
public function __construct(){
require('conex/classDatabase.php');
$this->Database = new Database($host, $user, $pass, $dbname);
}
public function Query ($email) {
$query = "SELECT user_email from table where email='".mysql_real_escape_string($email)."'";
$consulta = $this->Database->Select($query);
return $consulta;
}
}我在示例中包含了面向对象的语法。因为不管怎么说,您都在使用对象,所以您可能会与它相处得很好。
发布于 2012-08-29 22:42:19
mysql_connect创建您所依赖的全局连接。这已经不雅了。如果将连接视为对象实例--这是mysqli强制您做的事情,那么您将有更多的控制(特别是需要同时维护多个连接)。
也不是多余的..。只是很清楚。
发布于 2017-06-25 05:38:17
Mysqli_connect是mysql库的更新版本。
在这里,我在mysqli代表改进。
Mysqli介绍的东西很少。
他们是,
1.准备发言。2.面向对象的接口。3.支持多次发言。4.嵌入式服务器支持。
https://stackoverflow.com/questions/12187385
复制相似问题