Por otro lado, cuando yo quiero comprobar que un valor no existe en una base de datos antes de insertarlo, lo que hago es poner ese campo de la tabla con la restricción UNIQUE. Cuando ejecuto la insercción, compruebo si ha ocurrido un error, y sabiendo el número de error, sé lo que ha ocurrido y actúo en consecuencia. Y así, solo he ejecutado una insercción, en vez de un select y una insert (en tu peor caso, que es cuando el valor no está repetido).
EDIT: Este trozo de código no me gusta:
Código PHP:
Ver original//Código
$codigo = $scripts->codigo();
$verificarCodigo = $miConsulta->codigo($codigo);
if ($verificarCodigo->num_rows) {
do {
$miConexion->conexion->next_result();
$codigo = $scripts->codigo();
$verificarCodigo = $miConsulta->codigo($codigo);
} while ($verificarCodigo = $miConsulta->codigo($codigo));
$verificarCodigo->free();
}
$miConexion->conexion->next_result();
Lo he cambiado a:
Código PHP:
Ver original//Código
do {
$codigo = $scripts->codigo();
$verificarCodigo = $miConsulta->codigo($codigo);
$rows=$verificarCodigo = $miConsulta->codigo($codigo);
$verificarCodigo->free();
$miConexion->conexion->next_result();
} while ($rows);