Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E ai galera.
Então estou com esse problema ai e não consigo resolver, peguei o código de um amigo e fui modificando. Sou iniciantes em OO e não sei debugar direito.
O erro que eu recebo é esse:
Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/chottoway/www/class/DataBase.class.php on line 126
E meu código é esse (um pouco grande):
<?php
abstract class DataBase{
public $host = "xxx";
public $user = "xxx";
public $pass = "xxx";
public $db = "xxx";
public $connection = NULL;
public $afectedRows = NULL;
public $selectData = NULL;
public $selectMore = NULL;
public function __construct(){
$this->connect();
}
public function __destruct(){
if( $this->connection != NULL ){
mysql_close( $this->connection );
}
}
public function connect(){
$this->connection = mysql_connect( $this->host, $this->user, $this->pass, TRUE ) or die( mysql_error() );
mysql_select_db( $this->db ) or die( mysql_error() );
}
public function insert( $object ){
$sql = "INSERT INTO " . $object->table . " (";
for( $i = 0; $i < count( $object->fieldsValues ); $i++ ){
$sql.= key( $object->fieldsValues );
if( $i < count( $object->fieldsValues ) - 1 ){
$sql.= ", ";
}else{
$sql.= ") ";
}
next( $object->fieldsValues );
}
reset( $object->fieldsValues );
$sql.= "VALUES (";
for( $i = 0; $i < count( $object->fieldsValues ); $i++ ){
$sql.= is_numeric( $object->fieldsValues[key( $object->fieldsValues )] ) ? $object->fieldsValues[key( $object->fieldsValues )] : "'" . $object->fieldsValues[key( $object->fieldsValues )] . "'";
if( $i < count( $object->fieldsValues ) - 1 ){
$sql.= ", ";
}else{
$sql.= ") ";
}
next( $object->fieldsValues );
}
return $this->executeSQL( $sql );
}
public function update( $object ){
$sql = "UPDATE " . $object->table . " SET ";
for( $i = 0; $i < count( $object->fieldsValues ); $i++ ){
$sql.= key( $object->fieldsValues ) . " = ";
$sql.= is_numeric( $object->fieldsValues[key( $object->fieldsValues )] ) ? $object->fieldsValues[key( $object->fieldsValues )] : "'" . $object->fieldsValues[key( $object->fieldsValues )] . "'";
if( $i < count( $object->fieldsValues ) - 1 ){
$sql.= ", ";
}else{
$sql.= " ";
}
next( $object->fieldsValues );
}
$sql.= "WHERE " . $object->fieldPk . " = ";
$sql.= is_numeric( $object->valuePk ) ? $object->valuePk : "'" . $object->valuePk . "'";
return $sql;
//return $this->executeSQL( $sql );
}
public function delete( $object ){
$sql = "DELETE * FROM " . $object->table;
$sql .= " WHERE " . $object->fieldPk . " = ";
$sql.= is_numeric( $object->valuePk ) ? $object->valuePk : "'" . $object->valuePk . "'";
return $sql;
//return $this->executeSQL( $sql );
}
public function selectAll( $object ){
$sql = "SELECT * FROM " . $object->table;
if( $this->selectMore != NULL ){
$sql .= " " . $object->selectMore;
}
//return $sql;
return $this->executeSQL( $sql );
}
public function executeSQL( $sql = NULL ){
if( $sql != NULL ){
$query = mysql_query( $sql ) or die( mysql_error() );
$this->afectedRows = mysql_affected_rows( $this->connection );
if( substr( trim( strtoupper( $sql ) ), 0 , 6) == "select" ){
$this->selectData = $query;
return $query;
}else{
//return $this->afectedRows;
}
}
}
public function dataReturn( $type = NULL ){
switch ( strtolower( $type ) ) {
case 'array':
mysql_fetch_array( $this->selectData );
break;
case 'assoc':
mysql_fetch_assoc( $this->selectData );
break;
case 'object':
mysql_fetch_object( $this->selectData );
break;
default:
mysql_fetch_object( $this->selectData );
break;
}
}
}
?>
Pelo q eu vejo o problema é na linha do método executeSQL que esta atribuindo valor a propriedade:
$this->selectData = $query;
Parece que ela não recebe nada.
Eu ja procurei o erro milhares de vezes mas não acho.
Espero que vocês possam me ajudar.
Agradeço.
Carregando comentários...