Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2016, 12:33
raulgranadosraul
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 10 años, 9 meses
Puntos: 1
Aprendiendo a cambiar de mysql a mysqli

Buenas tardes una vez más amigos del web. Estoy aprendiendo a cambiar las webs que tengo hechas en mysql a mysqli y en general no me va tan mal, las consultas, los inserts y los update y demás logro hacerlo... pero hay muchas cosas que se me resisten.

Antes que nada me gustaría resolver una duda. Cuando uso mysql en cada página de la web incluyo...
Código PHP:
<?php require_once('Connections/conexion.php'); ?>
para llamar a la conexxión de la DB el archivo 'conexion.php' con la siguiente información:
Código PHP:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexion "servidor";
$database_conexion "base_de_datos";
$username_conexion "usuario";
$password_conexion "password";
$conexion mysql_pconnect($hostname_conexion$username_conexion$password_conexion) or trigger_error(mysql_error(),E_USER_ERROR); 
?>
Pero al usar mysqli tengo que hacer la consulta de la siguiente manera:
Código PHP:
$mysqli mysqli_connect("servidor""usuario""password""base_de_datos");
$Consulta mysqli_query($mysqli"SELECT * FROM tabla_bd");
$row_Consulta mysqli_fetch_assoc($Consulta);
$totalRows_Consulta mysqli_num_rows($Consulta); 
...mi pregunta es... ¿debo poner la primera línea SIEMPRE en cada consulta o puedo llamar a un archivo 'conexion.php' con la información:
Código PHP:
$mysqli mysqli_connect("servidor""usuario""password""base_de_datos"); 
... porque he intentado llamarlo al principio de la página con
Código PHP:
<?php require_once('Connections/conexion.php'); ?>
y hacer la consulta así:
Código PHP:
$Consulta mysqli_query($mysqli"SELECT * FROM tabla_bd");
$row_Consulta mysqli_fetch_assoc($Consulta);
$totalRows_Consulta mysqli_num_rows($Consulta); 
... pero no me funciona.

Como digo es una duda, pero no es algo que me para para trabajar y migrar a mysqli porque solo lo pregunto por cuestiones de comodidad.
La verdadera duda es que tengo un contador de visitas desde hace mucho tiempo en mysql y no consigo pasarlo a mysqli, he hecho mil pruebas y siempre me da errores o no me funciona. Les pego el código por si me pueden echar una mano.
Código PHP:
<?php require_once('Connections/conexion.php'); ?>
<?php
//IP DEL VISITANTE
$ip $_SERVER['REMOTE_ADDR'];
/*Seleccionamos la ip, la diferencia en tiempo entre la fecha actual y la almacenada
* en la base de datos, con la funcion de mysql TIMEDIFF(fecha de inicio, fecha final)
*/
$sql="select ip, TIMEDIFF(NOW(), fecha), fecha, num_votos from contador where ip='$ip'";
//Ejecutamos la instruccion SQL
$rs=mysql_query($sql) or die("Problemas al ejecutar select SQL ".mysql_error());
/*Almacenados el resultado de la instruccion SQL en un arreglo asociativo con la funcion
mysql_fetch_array */
$fila=mysql_fetch_array($rs);
$tiempo=$fila[1]; //Diferencia entre fecha guardada y fecha actual
$num_votos=$fila[3]; //N&uacute;mero de visitas
$horas_t=substr($tiempo,0,2); //Numero de horas transcurridas
$tiemRes 5//Varible de tiempo en horas para restringir la visita
/*Contamos el numero de registros obtenidos en la consulta anterior, si el numero
* obtenido es igual a cero es porque dicho visitante es nuevo en el sito
* entonces agregamos su ip a la base de datos junto con un 1 y la fecha actual */
if (mysql_num_rows($rs)==0)
{
$sql="insert into contador(ip, num_votos, fecha) values('$ip', 1, NOW())";
mysql_query($sql) or die("Problemas al ejecutar la insert SQL ".mysql_error());
}
/* Si el numero de registros obtenidos es mayor a cero es porque dicho visitante ha vuelto a ingresar al
* sitio, y si su tiempo transcurrido es mayor a 5 horas desde la primera vez que ingreso
* entonces actualizamos su numero de votos agregando sumando 1 al valor actual,
* tambien actualizamos la fecha de su ultimo ingreso a la fecha actual
* */
//Si la ip existe y han transcurrido 5hrs
elseif (mysql_num_rows($rs) > && $horas_t $tiemRes)
{
$sql="update contador set fecha=NOW(), num_votos='$num_votos'+1 where ip='$ip'";
mysql_query($sql) or die("Problemas al ejecutar update SQL ".mysql_error());
}
$sql="select SUM(num_votos) from contador"//Obtenemos la suma de todas las visitas
$rs=mysql_query($sql) or die("Problemas al ejecutar select SQL ".mysql_error());
$fila=mysql_fetch_array($rs); //Almacenanos el resultado de la consulta en un arreglo
$num_votos=$fila[0]; //Numero de visitas
mysql_close($link);
?>
Tiene instrucciones porque fue un contador que descargué de internet y siempre ha funcionado bien, pero al intentar migrar... no lo consigo.
Aquí el archivo 'configuracion.php' está en mysql, como conté antes, porque no he conseguido nunca arreglar este contador.

Gracias por adelantado!!!