Help to convert mysql to mysqli

Asked

Viewed 254 times

1

I’m a little layy in PHP and MYSQL and I’m having a need help problem to convert the MYSQL connection to MYSQLI follow the codes below:

mysql.php

<?php

Class mysql
{

    public $query;
    public $fetchAll;
    public $result;
    public $response;
    protected $config;
    protected $driver;
    protected $host;
    protected $port;
    protected $user;
    protected $pass;
    protected $dbname;
    protected $con;

    public function __construct( $config )
    {
        try
        {
            #array com dados do banco
            $this->config = $config;
            # Recupera os dados de conexao do config
            $this->dbname = $this->config['dbname'];
            $this->driver = $this->config['driver'];
            $this->host = $this->config['host'];
            $this->port = $this->config['port'];
            $this->user = $this->config['user'];
            $this->pass = $this->config['password'];
            # instancia e retorna objeto
            $this->con = mysql_connect( "$this->host", "$this->user", "$this->pass" );
            @mysql_select_db( "$this->dbname" );
            if( !$this->con )
            {
                throw new Exception( "Falha na conexão MySql com o banco [$this->dbname] em " . DATABASEDIR . "database.conf.php" );
            }
            else
            {
                return $this->con;
            }
        }
        catch( Exception $e )
        {
            echo $e->getMessage();
            exit;
        }
        return $this;
    }

    public function query( $query = '' )
    {
        try
        {
            if( $query == '' )
            {
                throw new Exception( 'mysql query: A query deve ser informada como parâmetro do método.' );
            }
            else
            {
                $this->query = $query;
                $this->result = mysql_query( $this->query );
                if(!$this->result)
                {
                    $this->response = "Erro " .mysql_errno()." => ". mysql_error();
                }
                else
                {
                    $this->response = "success";
                }                
            }
        }
        catch( Exception $e )
        {
            echo $e->getMessage();
            exit;
        }
        return $this;
    }

    public function fetchAll()
    {
        $this->fetchAll = "";
        while( $row = @mysql_fetch_array( $this->result, MYSQL_ASSOC ) )
        {
            $this->fetchAll[] = $row;
        }
        return $this->fetchAll;
    }

    public function rowCount()
    {
        return @mysql_affected_rows();
    }

    public function limit( $limit, $offset )
    {
        return "LIMIT " . (int) $limit . "," . (int) $offset;
    }
}
/* end file */

database.conf.php

<?php

$databases = array(
    # MYSQL
    'default' => array
        (
        'driver' => 'mysql',
        'host' => 'localhost',
        'port' => 3306,
        'dbname' => 'dbname',
        'user' => 'root',
        'password' => '',
        'emailAdmin' => 'e-mail.com'// email para receber mensagens do chat
    )
);

/* end file */

Connection.class

<?php

Class Conexao extends PDO
{

    protected $config;
    protected $driver;
    protected $sgbd;
    protected $host;
    protected $port;
    protected $user;
    protected $pass;
    protected $dbname;
    protected $strcon;
    protected $con;

    public function __construct( $config )
    {
        try
        {
            #array com dados do banco
            $this->config = $config;
            # Recuperando os dados de conexao do driver
            $this->dbname = $this->config['dbname'];
            $this->driver = $this->config['driver'];
            $this->sgbd = $this->config['sgbd'];
            $this->host = $this->config['host'];
            $this->port = $this->config['port'];
            $this->user = $this->config['user'];
            $this->pass = $this->config['password'];
            $this->strCon = "$this->sgbd:host=$this->host;port=$this->port;";
            # instancia e retorna objeto PDO
            $this->con = parent :: __construct( "$this->strCon dbname=$this->dbname", $this->user, $this->pass, array( PDO::ATTR_PERSISTENT => true ) );
            return $this->con;
        }
        catch( PDOException $e )
        {
            echo 'A Conexão falhou: ' . $e->getMessage();
            exit;
        }
    }

    public function close()
    {
        unset( $this->con );
        unset( $this->dbname );
        unset( $this->config );
    }
}
/* end file */

1 answer

0

Do it this way:

In connection with the database:

$link = mysqli_connect("localhost", "user", "senha", "banco") or die("Erro a conectar");

And whenever it is necessary to use the mysqli query calls the $link variable, as follows:

$sql = mysqli_query($link, "SELECT * from tabela WHERE row='$row'");

The case repeats for all mysqli parameters.

  • Thank you Gonçalo devo inserir na arquivo mysql.php

  • Exactly, you must insert the connection in the connection location and whenever you use the query mysqli_query call the variable $link first.

  • Gonçalo if you don’t want to abuse your help could show me how the code should look because I’m a layman in php

Browser other questions tagged

You are not signed in. Login or sign up in order to post.