大家好,我在这方面出错了吗?
警告:mysqli_select_db()需要2个参数,第31行/home/controle/public_html/trabd01/classesBD.php中给出1个参数
define("SERVIDOR_BD", "localhost");
define("USUARIO_BD", "usuario");
define("SENHA_BD", "senha");
define("BANCO_DE_DADOS", "dados");
class conecta {
function conecta($servidor="", $bancoDeDados="", $usuario="", $senha=""){
if (($servidor == "") && ($usuario == "") && ($senha == "") && ($bancoDeDados == "")){
$this->bancoDados = mysqli_connect(SERVIDOR_BD, USUARIO_BD, SENHA_BD) or trigger_error(mysqli_error(),E_USER_ERROR);
$this->database_bancoDados = BANCO_DE_DADOS;
} else {
$this->bancoDados = mysqli_connect($servidor, $usuario, $senha) or trigger_error(mysqli_error(),E_USER_ERROR);
$this->database_bancoDados = $bancoDeDados;
}
}
}
class consultar {
var $bd;
var $res;
var $row;
var $nrw;
var $data;
function executa($sql=""){
if($sql==""){
$this->res = 0; // Pointer result of the executed query
$this->nrw = 0; // Line number the query returned, cruise control
$this->row = -1; // Array of the current query line
}
// Connects to the database
$bd = new conecta();
$bd->conecta();
mysqli_select_db(BANCO_DE_DADOS, $bd->bancoDados);/*ERRORHERE*/
$this->res = mysqli_query($sql, $bd->bancoDados);
$this->nrw = @mysqli_num_rows($this->res);
$this->row = 0;
if($this->nrw > 0)
$this->dados();
}
function primeiro(){
$this->row = 0;
$this->dados();
}
function proximo(){
$this->row = ($this->row<($this->nrw - 1)) ?
++$this->row:($this->nrw - 1);
$this->dados();
}
function anterior(){
$this->row = ($this->row > 0) ? -- $this->row:0;
$this->dados();
}
function ultimo(){
$this->row = $this->nrw-1;
$this->dados();
}
function navega($linha){
if($linha>=0 AND $linha<$this->nrw){
$this->row = $linha;
$this->dados();
}
}
function dados(){
mysqli_data_seek($this->res, $this->row);
$this->data = mysqli_fetch_array($this->res);
}
}
答案 0 :(得分:3)
在mysqli_
中,连接首先出现。
你有:
mysqli_select_db(BANCO_DE_DADOS, $bd->bancoDados);/*ERRORHERE*/
$this->res = mysqli_query($sql, $bd->bancoDados);
当它应该读作并反转那些:
mysqli_select_db($bd->bancoDados, BANCO_DE_DADOS);
$this->res = mysqli_query($bd->bancoDados, $sql);
参考文献:
另外,还要检查查询中的错误:
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Then the rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。
诺塔:
@
中的@mysqli_num_rows
符号是一个错误抑制器。您可能希望在测试期间将其删除。