Chose Language:
comments
Author: Admin/Publisher |not finished |not checked

PHP mysqli

La clase PHP mysqli es la clase principal de la extensión MySQLi de PHP , esta clase representa una conexión a la base de datos creada con un DBMS MySQL.

La siguiente sinopsis es la misma que la dada en PHP.net

Sinopsis
class mysqli {
/* Propiedades */
int $affected_rows;
int $connect_errno;
string $connect_error;
int $errno;
array $error_list;
string $error;
int $field_count;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Métodos */
__construct(
    string $host = ini_get("mysqli.default_host"),
    string $username = ini_get("mysqli.default_user"),
    string $passwd = ini_get("mysqli.default_pw"),
    string $dbname = "",
    int $port = ini_get("mysqli.default_port"),
    string $socket = ini_get("mysqli.default_socket")
)
autocommit(bool $mode): bool
change_user(string $user, string $password, string $database): bool
character_set_name(): string
close(): bool
commit(int $flags = ?, string $name = ?): bool
debug(string $message): bool
dump_debug_info(): bool
get_charset(): object
get_client_info(): string
get_connection_stats(): bool
mysqli_stmt::get_server_info(): string
get_warnings(): mysqli_warning
init(): mysqli
kill(int $processid): bool
more_results(): bool
multi_query(string $query): bool
next_result(): bool
options(int $option, mixed $value): bool
ping(): bool
public static poll(
    array &$read,
    array &$error,
    array &$reject,
    int $sec,
    int $usec = ?
): int
prepare(string $query): mysqli_stmt
query(string $query, int $resultmode = MYSQLI_STORE_RESULT): mixed
real_connect(
    string $host = ?,
    string $username = ?,
    string $passwd = ?,
    string $dbname = ?,
    int $port = ?,
    string $socket = ?,
    int $flags = ?
): bool
escape_string(string $escapestr): string
real_query(string $query): bool
public reap_async_query(): mysqli_result
public refresh(int $options): bool
rollback(int $flags = ?, string $name = ?): bool
select_db(string $dbname): bool
set_charset(string $charset): bool
ssl_set(
    string $key,
    string $cert,
    string $ca,
    string $capath,
    string $cipher
): bool
stat(): string
stmt_init(): mysqli_stmt
store_result(int $option = ?): mysqli_result
use_result(): mysqli_result
}
contenido

Propiedades de PHP mysqli

https://blastcoding.com/php-mysqli/#propiedades

En las propiedades usaremos la variable $dbconnection, esta será la conexión obtenida tras hacer una instancia de la clase

instancia de la clase mysqli
$dbconnection = new mysqli('localhost', 'mi_usuario', 'mi_contraseña', 'mi_bd');
Todas estas propiedades son readonly así que no podrán ser cambiadas, su funcionalidad es obtener información de forma rápida y efectiva

affected_rows

https://blastcoding.com/php-mysqli/#affected_rows

Devuelve el número de filas afectadas en la última consulta

Sintaxis
$dbconnection->affected_rows;

connect_errno

https://blastcoding.com/php-mysqli/#connect_errno

código de error de la última llamada

Sintaxis
$dbconnection->connect_errno;

connect_error

https://blastcoding.com/php-mysqli/#connect_error

Devuelve una string con la descripción del último error de conexión

Sintaxis
$dbconnection->connect_error;

errno

https://blastcoding.com/php-mysqli/#errno

código del error de la última función llamada

Sintaxis
$dbconnection->errno;

error_list

https://blastcoding.com/php-mysqli/#error_list

lista de errores desde el último comando ejecutado

Sintaxis
$dbconnection->error_list;

error

https://blastcoding.com/php-mysqli/#error

string que describe el último error

Sintaxis
$dbconnection->error;

field_count

https://blastcoding.com/php-mysqli/#field_count

número de columnas para la consulta más reciente

Sintaxis
$dbconnection->field_count;

client_version

https://blastcoding.com/php-mysqli/#client_version

Versión cliente de MySQL como valor de tipo integer, esta es la versión que tiene como librería, de esta manera podemos determinar si podemos o no utilizar ciertas características, funcionalidades de MySQL.

Sintaxis
$dbconnection->client_version;

host_info

https://blastcoding.com/php-mysqli/#host_info

String representando el tipo de conexión usada

Sintaxis
$dbconnection->host_info;

protocol_version

https://blastcoding.com/php-mysqli/#protocol_version

Retorna la versión de protocolo utilizado

Sintaxis
$dbconnection->protocol_version;

server_info

https://blastcoding.com/php-mysqli/#server_info

Versión de MySQL server retornada como un string

Sintaxis
$dbconnection->server_info;

server_version

https://blastcoding.com/php-mysqli/#server_version

Versión de MySQL server como un entero

Sintaxis
$dbconnection->server_version;

info

https://blastcoding.com/php-mysqli/#info

Información acerca de la consulta más reciente ejecutada.

Sintaxis
$dbconnection->info;

insert_id

https://blastcoding.com/php-mysqli/#insert_id

Este es el valor generado por un AUTO_INCREMENT perteneciente a una columna de nuestra base de datos creado por la última consulta.

Está claro que para que la última consulta nos dé este número la tabla debe tener un id AUTO_INCREMENT

Sintaxis
$dbconnection->insert_id;

sqlstate

https://blastcoding.com/php-mysqli/#sqlstate

El SQLSTATE error proveniente de una operación(consula) previa en MySQL

Sintaxis
$dbconnection->sqlstate;

thread_id

https://blastcoding.com/php-mysqli/#thread_id

La ID del hilo (thread id) de la conexión actual. Probablemente, esta propiedad no la utilices nunca, deberías de tener una gran cantidad de usuarios para tener que preocuparte por los hilos que conectan con la base de datos.

Sintaxis
$dbconnection->thread_id;

warning_count

https://blastcoding.com/php-mysqli/#warning_count

nos devolverá la cantidad de warnings desde la última consulta para el link dado

Sintaxis
$dbconnection->warning_count;

Métodos de PHP mysqli

https://blastcoding.com/php-mysqli/#metodos

Aquí veremos los diferentes métodos pertenecientes a nuestra clase mysqli, esta es la clase principal de la extension mysqli y, por lo tanto, tiene la mayor cantidad de métodos.

__construct

https://blastcoding.com/php-mysqli/#__construct

Abre una nueva conexión a nuestro server MySQL, creando nuestro objeto mysqli que representara esta conexión.

Description / Descripción
public mysqli::__construct(
    string $host = ini_get("mysqli.default_host"),
    string $username = ini_get("mysqli.default_user"),
    string $passwd = ini_get("mysqli.default_pw"),
    string $dbname = "",
    int $port = ini_get("mysqli.default_port"),
    string $socket = ini_get("mysqli.default_socket")
)
Sintaxis
$db = new mysqli($host, $username, $passwd, $dbname, $port, $socket);

Por lo general se usa de nombre para la variable que contiene el objeto mysqli uno de los siguientes: $conn, $db, $dbconn, $dbconnection, $database

Parametros

$host – el valor dado debe ser un string por ejemplo el nombre del host "localhost" o ip del host "127.0.0.1".

$username – El nombre de usuario que utilizara nuestra base de datos

$passwd – password del usuario que utilizará la base de datos

$dbname – El nombre de la base de datos

$port – puerto

$socket – socket(combinacion de ip + puerto)

Retornos

mysqli[obj] – retorna un objeto mysqli en caso de poder realizar la coneccion con la base de datos

false – este metodo retorna false en caso de error

autocommit

https://blastcoding.com/php-mysqli/#autocommit

Este método determina si queremos que las consultas(querys) hagan autocommit o no, lo que tengo que destacar de esto es: debemos de tener el cuidado suficiente al utilizarlo, ya que si queremos hacer una transacción no tiene sentido utilizar autocommit.

Por ejemplo tenemos varias tablas para cambiar haciendo un insert que pasaria si falla en el medio de estos insert debería poder hacer rollback, pero lamentablemente ya hemos hecho commit y esto no tiene sentido.

Se recomienda utilizar autocommit con mesura y con mucho sentido común
Description
public mysqli::autocommit(bool $mode): bool

Su parámetro $mode es de tipo bool he indicará si está habilitado o no

Por lo general, se asegura que autocommit no este habilitado cuando se hace una transacción y se utiliza habilitado en consultas(querys) simples.

change_user

https://blastcoding.com/php-mysqli/#change_user

Cambia el usuario a la conexión de base de datos.

Hay algunas ocasiones en que podemos querer cambiar el usuario con el que realizamos la conexión a la base de datos, ya que estos pueden tener distintos permisos.

Description
public mysqli::change_user(string $user, string $password, string $database): bool
Sintaxis
$dbconnection->change_user($user, $password, $database);

Parametros

$user – es el nombre del usuario de la base de datos nuevo que se conectara

$password – password del usuario que se conectara

$database – base de datos, en caso de no querer cambiar la base de datos puedes pasar null

Retorno

true o false dependiendo de si se pudo cambiar el usuario

character_set_name

https://blastcoding.com/php-mysqli/#character_set_name

Devuelve el chararacter set de la conexión a base de datos vea https://dev.mysql.com/doc/refman/8.0/en/charset.html para entender mejor el charset.

Description / Descripción
public mysqli::character_set_name(): string
Sintaxis
$dbconnection->character_set_name();

Retorno

Este metodo devolvera un string

Un ejemplo de retorno de lo que obtendrás "latin1_swedish_ci"

close

Con este método se dará como finalizado la conexión.

Description / Descripción
public mysqli::close(): bool

Retorno

Retornará true o false dependiendo de si no pudo cerrar la conexión. En caso de que la conexión sea persistente, la conexión no se cerrara.

commit

https://blastcoding.com/php-mysqli/#commit

Realiza el commit de la transacción en curso.

Description / Descripción
public mysqli::commit(int $flags = ?, string $name = ?): bool

Devuelve true o false dependiendo de si se pudo realizar la transacción o no

debug

https://blastcoding.com/php-mysqli/#debug

Realiza una operación de debug

Talvez veamos esto en profundidad en un futuro proximo. Retorna como valor true

Description[EN] / Descripción[ES]
public mysqli::debug(string $options): bool

$option es un string que representa las diferentes operaciones que se realizaran, cada operación debe ser separada por : de la siguiente.

PHP. net nos da el siguiente ejemplo el cual utiliza una funcion alias, de todas formas analizaremos este ejemplo.

Ejemplo
mysqli_debug("d:t:o,/tmp/client.trace");

Vea que nuestro string es "d:t:o,/tmp/client.trace" por tanto, usara la opción d, la opción t y o la cual también pose ,/tmp/client.trace este es el archivo donde guardara los datos de la opción d y t. Por otra parte, o significa output sin especificar la operación o no crearía este archivo.

¿Y como sería la utilización del método al utilizar POO(OOP)?

Supongamos que ya tenemos una conexión $dbconnection

Ejemplo utilizando POO(OOP[EN])
$dbconnection->debug("d:t:o,/tmp/client.trace");
Tabla de opciones
option characterDescription
O MYSQLND_DEBUG_FLUSH
A/a MYSQLND_DEBUG_APPEND
F MYSQLND_DEBUG_DUMP_FILE
i MYSQLND_DEBUG_DUMP_PID
LMYSQLND_DEBUG_DUMP_LINE
m MYSQLND_DEBUG_TRACE_MEMORY_CALLS
n MYSQLND_DEBUG_DUMP_LEVEL
o output to file
T MYSQLND_DEBUG_DUMP_TIME
t MYSQLND_DEBUG_DUMP_TRACE
x MYSQLND_DEBUG_PROFILE_CALLS

En esta tabla no se encuentra lo que hace d, pero me he encontrado otro lugar donde saber lo que hacen estas opciones, ya que estas son las mismas que se usan en c/c++ debug

este blog -> http://tiebing.blogspot.com/2011/10/cc-dbug-library.html

d :Enable output from DBUG_ macros for
for the current state. May be followed
by a list of keywords which selects output
only for the DBUG macros with that keyword.
A null list of keywords implies output for
all macros.

dump_debug_info

https://blastcoding.com/php-mysqli/#dump_debug_info

Hace un dump de la información cuando se está haciendo el debugging en el log. En pocas palabras hace un volcado(copia si asi lo queire ver) de lo que esta pasando en un archivo log.

El usuario a usar este metodo deberia ser SUPERUSER o con los maximos privilegios para esa base de datos.

Description / Descripción
public mysqli::dump_debug_info(): bool

Nos retorna true en caso de poder hacer el volcado, en caso contrario devolverá false(error)

get_charset

https://blastcoding.com/php-mysqli/#get_charset

Devuelve el character set en forma de objecto(stdClass), este provee varias propiedades del charset:

Description / Descripción
public mysqli::get_charset(): ?object

Devuelve un objeto de tipo stdClass con los siguientes datos:

charset – Character set name

collation – Collation name

dir – Directory the charset description was fetched from (?) or «» for built-in character sets

min_length – Minimum character length in bytes

max_length – Maximum character length in bytes

number – Internal character set number

state – Character set status (?)

get_client_info(En desuso desde PHP 8.1, use $client_info)

https://blastcoding.com/php-mysqli/#get_client_info

Obtiene información del cliente MySQL, al correr este método obtendremos un string representando la bibliteca(library) del cliente MySQL

Description / Descripcion
public mysqli::get_client_info(): string

Retorna la información del cliente MySQL

get_connection_stats

https://blastcoding.com/php-mysqli/#get_connection_stats

Retorna estadísticas de la conexión cliente MySQL. Estos datos son muy técnicos y probablemente no utilicé este método nunca.

Description / Descripción
public mysqli::get_connection_stats(): array

Retorna un array con los stats de la conexión.

get_warnings

https://blastcoding.com/php-mysqli/#get_warnings

Obtiene el resultado de correr la consulta SHOW WARNINGS en MySQL. El resultado es devuelto como un objeto mysqli_warning

SHOW WARNINGS is a diagnostic statement that displays information about the conditions (errors, warnings, and notes) resulting from executing a statement in the current session.

mysql.com

Devolvera un objeto mysqli_warning o false en caso de error

Description /Descripcion
public mysqli::get_warnings(): mysqli_warning|false

init(en des-uso vea __construct)

no veremos esta función/ metodo

kill

https://blastcoding.com/php-mysqli/#kill

pide al servidor MySQL terminar con el proceso de un hilo(thread), este método está relacionado con thread_id ya que la id del proceso es esta id.

Description / Descripcion
public mysqli::kill(int $process_id): bool

Parametro

$process_id – es la misma id que podemos obtener con thread_id

Retorno

true o false dependiendo de si se pudo finalizar el proceso o no

more_results

https://blastcoding.com/php-mysqli/#more_results

Chequea si hay más resultados de una muti_query

Description / Descripción
public mysqli::more_results(): bool

multi_query

https://blastcoding.com/php-mysqli/#multi_query

Realiza una o mas consultas a la base de datos

Description / Descripción
public mysqli::multi_query(string $query): bool

next_result

https://blastcoding.com/php-mysqli/#next_result

Es el próximo resultado si se ha utilizado multi_query. Debe ser utilizada en conjunto con multi_query

Description / Descripción
public mysqli::next_result(): bool

options

https://blastcoding.com/php-mysqli/#options

Con este método, podemos establecer opciones que cambian el comportamiento para una conexión. Por ejemplo, podemos decirle que la conexión dure un cierto tiempo después de todo, talvez no queramos tener una conexión siempre abierta, estamos gastando recursos.

Description / Descripción
public mysqli::options(int $option, mixed $value): bool
Sintaxis
$dbconnection->options($option,$value);
NameDescription
MYSQLI_OPT_CONNECT_TIMEOUTConnection timeout in seconds
MYSQLI_OPT_READ_TIMEOUTCommand execution result timeout in seconds. Available as of PHP 7.2.0.
MYSQLI_OPT_LOCAL_INFILEEnable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_COMMANDCommand to execute after when connecting to MySQL server
MYSQLI_SET_CHARSET_NAMEThe charset to be set as default.
MYSQLI_READ_DEFAULT_FILERead options from named option file instead of my.cnf Not supported by mysqlnd.
MYSQLI_READ_DEFAULT_GROUPRead options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE. Not supported by mysqlnd.
MYSQLI_SERVER_PUBLIC_KEYRSA public key file used with the SHA-256 based authentication.
MYSQLI_OPT_NET_CMD_BUFFER_SIZEThe size of the internal command/network buffer. Only valid for mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZEMaximum read chunk size in bytes when reading the body of a MySQL command packet. Only valid for mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVEConvert integer and float columns back to PHP numbers. Only valid for mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERTWhether to verify server certificate or not.

ping

https://blastcoding.com/php-mysqli/#ping

Hace ping a la conexión del servidor MySQL, en caso de que la conexión este caída trata de reconectar

Description / Descripción
 public mysqli::ping(): bool

en caso de poder hacer ping o reconectar el retorno será true, en caso contrario será false

prepare

https://blastcoding.com/php-mysqli/#prepare

Este metodo nos permite crear un prepare statement para su ejecución. Devuelve un objeto mysqli_stmt o false en caso de error.

Description / Descripción
public mysqli::prepare(string $query): mysqli_stmt|false

query

https://blastcoding.com/php-mysqli/#query

Permite realizar una consulta en nuestra base de datos, la consulta será pasada por parámetro como un string.

Descripción / Descripción
public mysqli::query(string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result|bool

Parámetros

$query -será la consulta que le pasaremos para ser realizada en nuestra base de datos y debe ser un string, por ejemplo: "SELECT * FROM usuarios"

$result_mode – MYSQLI_USE_RESULT o MYSQLI_STORE_RESULT

Retorno

Este método nos devolverá un objeto mysqli_result en caso de poder realizar la consulta con exito y false en caso contrario.

real_connect

https://blastcoding.com/php-mysqli/#real_connect

Abre una conexión al servidor MySQL, esta conexión utiliza la conexión creada con el constructor __construct.

Description / Descripción
 
public mysqli::real_connect(
    string $host = ?,
    string $username = ?,
    string $passwd = ?,
    string $dbname = ?,
    int $port = ?,
    string $socket = ?,
    int $flags = ?
): bool

Parámetros

$host – puede ser una ip o el hostname pasado como un string. En caso de especificar null o "localhost" su valor sera el de local host.

$username – nombre de usuarios

$passwd – password

$dbname – nombre de la base de datos

$port -puerto

$socket -socket

$flag – flag es alguno de las siguientes

NameDescription
MYSQLI_CLIENT_COMPRESSUse compression protocol
MYSQLI_CLIENT_FOUND_ROWSreturn number of matched rows, not the number of affected rows
MYSQLI_CLIENT_IGNORE_SPACE Allow spaces after function names. Makes all function names reserved words.
MYSQLI_CLIENT_INTERACTIVE Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
MYSQLI_CLIENT_SSLUse SSL (encryption)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT Like MYSQLI_CLIENT_SSL, but disables validation of the provided SSL certificate. This is only for installations using MySQL Native Driver and MySQL 5.6 or later.

Retorno

true o false dependiendo si se pudo realizar la conexión o no

real_escape_string / escape_string

https://blastcoding.com/php-mysqli/#real_escape_string

Escapa los caracteres especiales en un string para su uso en una sentencia SQL, tomando en cuenta el conjunto de caracteres actual de la conexión

Description / Descripción
public mysqli::real_escape_string(string $string): string

Parámetros

$string – es el string que se quiere escapar

Retorno

Retorna un string ya escapado

Esta función cumple un papel importante para evitar inyecciones de código cuando se está utilizando query o real_query

Vea con atención el siguiente ejemplo de php.net

Ejemplo de real_scape_string de [php.net]
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$city = "'s-Hertogenbosch";
/* this query with escaped $city will work */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
    $mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Select returned %d rows.\n", $result->num_rows);
/* this query will fail, because we didn't escape $city */
$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);

En el ejemplo se está usando mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); para que si o si se tenga que utilizar la función de escapado, pero que pasaría si no usáramos esté escapado, pues podrían borrarnos todos los datos de nuestra tabla fácilmente.

Por ejemplo: si tengo un formulario donde coloco el valor que estoy buscando pero en vez de pasarle una ciudad, en este caso "'s-Hertogenbosch" y paso algo parecido a weak";DROP TABLE City;

Y nuestra tabla desapareció o sea algo parecido a esto

En un futuro hablaremos de esto creo.

Hay una página que tiene muy explicado este tema y es https://portswigger.net/web-security/sql-injection

real_query

https://blastcoding.com/php-mysqli/#real_query

Realiza una consulta SQL en nuestra base de datos, como ya hemos mencionado antes en consultas con mysqli en php utilizar query en vez de prepare puede traernos problemas grandes con los ataques de SQL inyection(inyección de código SQL) se recomienda utilizar prepare en todo caso en que tengamos inputs

Description / Descripción
public mysqli::real_query(string $query): bool

reap_async_query

https://blastcoding.com/php-mysqli/#reap_async_query

Obtener el resultado de una consulta asincrónica, para poder utilizar este método necesitarás mysqlnd

Description / Descripción
public mysqli::reap_async_query(): mysqli_result[obj]

Retorna un objeto mysqli_result, en caso de error devolverá false.

refresh(Deprecated by MySQL)

https://blastcoding.com/php-mysqli/#refresh

realiza un refresh, realiza flushes tablas o caches, o resetea la onformacion del server replicada.

Este metodo fue dado en desuso por MySQL y no lo deberias de utilizar, este insta a utilizar mysql_real_query() en su lugar

rollback

https://blastcoding.com/php-mysqli/#rollback

Revierte la transacción que se está realizando.

Description / Descripción
public mysqli::rollback(int $flags = 0, ?string $name = null): bool

select_db

https://blastcoding.com/php-mysqli/#select_db

Selecciona la base de datos, aunque es posible cambiar la base de datos por defecto para una consulta, se sugiere utilizar este método solo para establecer la base de datos de conexión, cosa que ya puede hacerse con el método constructor.

Puedes cambiar la base de datos de la conexión, siempre y cuando el usuario sea el mismo.

Description / Descripción
ublic mysqli::select_db(string $database): bool

set_charset

https://blastcoding.com/php-mysqli/#set_charset

Setea el charset de la conexión cliente MySQL para data proveniente desde el servidor, como para data hacia el servidor.

Si necesitas saber las charset que puedes usar este link muestra todas las charset de MySQL posibles

https://dev.mysql.com/doc/refman/8.0/en/charset-charsets.html
Description / Descripción
 public mysqli::set_charset(string $charset): bool

ssl_set

https://blastcoding.com/php-mysqli/#ssl_set

ssl_set es utilizado para establecer una conexión segura utilizando SSL.

Description / Descripción
public mysqli::ssl_set(
    ?string $key,
    ?string $certificate,
    ?string $ca_certificate,
    ?string $ca_path,
    ?string $cipher_algos
): bool

stat

https://blastcoding.com/php-mysqli/#stat

Gets the current system status

public mysqli::stat(): string|false

stmt_init

https://blastcoding.com/php-mysqli/#stmt_init

Inicializa un prepare statement y crea un objeto mysqli_stmt.

Description / Descripción
public mysqli::stmt_init(): mysqli_stmt|false
Sintaxis
$stmt = $dbconnection->stmt_init();

store_result

https://blastcoding.com/php-mysqli/#store_result

Transfiere un conjunto de resultados de la última consulta

Description / Descripción
public mysqli::store_result(int $mode = 0): mysqli_result|false

use_result

https://blastcoding.com/php-mysqli/#use_result

Inicia la recuperación de un result set(set de resultados), en definitiva suponga que hace una consulta y necesita el resultado de esta más adelante. Este método devolverá el resultado de la última consulta utilizada

Description / Descripción
public mysqli::use_result(): mysqli_result|false
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category

Comments