Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP con MySQLi

Estas en el tema de PHP con MySQLi en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos, tengo una duda, a ver si me las podeis responder vosotros, tengo instalada la ultima version de Wampserver(PHP5+Apache 2.0.55 + MySQL 5), ...
  #1 (permalink)  
Antiguo 15/08/2006, 03:36
 
Fecha de Ingreso: mayo-2006
Mensajes: 22
Antigüedad: 17 años, 11 meses
Puntos: 0
PHP con MySQLi

Hola a todos,

tengo una duda, a ver si me las podeis responder vosotros, tengo instalada la ultima version de Wampserver(PHP5+Apache 2.0.55 + MySQL 5), estoy haciendo una tienda virtual y hay algunos metodos que me dan error, en concreto son pertnecientes a la clase mysqli_results (_fetch_assoc() y _close()) si los pongo tal que así: _fetch_assoc(), me da el siguiente error:

Fatal error: Call to undefined function _fetch_assoc() in C:\wamp\www\BookClub\cap0601.php on line 18

si lo pongo de la siguiente manera: mysql_fetch_assoc() me da un resultado satisfactorio, el problema es que me estoy fijando en un libro y todas las funciones estan puestas del primer modo, la pregunta es: tengo que configurar o añadir algo para poder tener esas funciones??? En teoria el paquete que me he instalado viene con la libreria mysqli.

Un saludo!!
  #2 (permalink)  
Antiguo 15/08/2006, 08:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Pues yo no conozco ninguna funcion que se llame _fetch_assoc() ni _close() ni asi, si estas usando mysqli tienes que usar las funciones de mysqli:
mysqli_fetch_assoc()
mysqli_fetch_row()
mysqli_close()

etc.
  #3 (permalink)  
Antiguo 15/08/2006, 10:28
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 6 meses
Puntos: 0
Bueno en realidad para trabajar con mysqli tienes 2 formas:
- Usarlo de forma procedural
ó
- Usarlo Orientado a Objetos (te lo recomiendo)

Bueno de ejemplo una consulta en ambas formas

de Forma Procedural

$con = mysqli_connect("localhost", "usuario", "password", "tu_bd");

/* verificar la conexion */
if (mysqli_connect_errno()) {
echo "Hay error de conexion: ". mysqli_connect_error();
exit();
}

$sql = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($rs = mysqli_query($con, $sql)) {

/* fetch array asociativo*/
while ($fila = mysqli_fetch_assoc($rs)) {
echo $fila["Name"].' '.$fila["CountryCode"].'<br>';
}

/* liberamos la memoria asociado al resultado */
mysqli_free_result($result);
}

/* cerrmos conexion*/
mysqli_close($con);


ok ahora Orientada a Objetos

$mysqli = new mysqli("localhost", "usuario", "password", "tu_bd");

/* verificar conexion */
if (mysqli_connect_errno()) {
echo "Error enconexion: ". mysqli_connect_error();
exit();
}

$sql = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($rs = $mysqli->query($sql)) {

/* fetch array asociativo*/
while ($fila = $rs->fetch_assoc()) {
echo $fila["Name"].' '.$fila["CountryCode"].'<br>';
}

/* liberamos la memoria asociada al resultado */
$rs->close();
}

/* cerramos la conexion */
$mysqli->close();


Bueno ahi estan las 2 maneras de usar mysqli, ya depende de ti, en escoger uno de los 2, ah mas ejemplos encuentras en la documentacion de php->Referencia de Funciones->Extension Mejorada de Mysql aqui el link
  #4 (permalink)  
Antiguo 21/08/2006, 03:59
 
Fecha de Ingreso: mayo-2006
Mensajes: 22
Antigüedad: 17 años, 11 meses
Puntos: 0
Como me ha dicho uno de los moderadores,
seguire el problema por aqui, he hecho una pagina muy simple para ver si me podeis resolver el problemilla, aqui teneis el codigo:

<?php

$conn = new mysqli_connect("localhost","root","14309294", "bookclub")
or die("No se puede establecer la conexion");

echo "Conexion realizada";

mysqli_select_db($conn, "bookclub")
or die("No se puede seleccionar la base de datos");
echo "DB encontrada";
$cons = "SELECT * FROM clientes";

$resultado = mysqli_query($cons)
or die("No se puede seleccionar la tabla");

echo "<table>\n";

while ($fila = mysqli_fetch_assoc($resultado))
{

echo "\t<tr>|n";
foreach($fila as $col)
{
echo "\t\t<td>$col</td>\n";
}
}

echo "</table>\n";

mysqli_free_result($resultado);

mysqli_close($conn);

?>

El error que me da al ejecutar la pagina es:

Fatal error: Class 'mysqli_connect' not found in C:\wamp\www\BookClub\cap0601.php on line 3

Muchas gracias!
  #5 (permalink)  
Antiguo 21/08/2006, 08:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Creo te serviria mucho que bajaras el Manual de PHP, ese error que te marca es porque la clase no se llama 'mysqli_connect', esa es una funcion, si lo vas a realizar de forma procedural como pones tu codigo usa mysqli_connect como una funcion.

Te recomiendo veas el manual, vienen ejemplos para usar mysqli_connect.
  #6 (permalink)  
Antiguo 23/08/2006, 04:31
 
Fecha de Ingreso: mayo-2006
Mensajes: 22
Antigüedad: 17 años, 11 meses
Puntos: 0
Despues del consejo que me has dado y despues de corregirlo en la pagina de prueba y funcionar, ahora he aplicado esto una de mis paginas y me sale el siguiente error

Warning: mysqli::mysqli() [function.mysqli]: (/1045): in C:\wamp\www\BookClub\bib\base\funciones.php on line 117

El trozo de codigo es el siguiente( si necesitais mas codigo solo decirmelo)
[php]
function conectar($sUser,$sPasswd) {
// explicación en capítulo 13
global $con;

// crea un objeto conexión
// utiliza las variables del servidor aunque también podríamos utilizar las
// variables $_SESSION['Login'] y $_SESSION['Palabrapaso']
// se usa la constante DBASE que tiene asignada el nombre Comercio

$con = new mysqli(SERVIDOR,$sUser,$sPasswd,DBASE);


// si hay un error de conexión se emite un mensaje y finaliza
// if ($con->connect_errno()) {
if (!$con) {
printf("Ha fallado la conexión, error: %s\n", $con->connect_error());
die ("revisar conexión");
}
else print "conexion realizada con exito";


} // fin función conectar()


///////////////////////////////////////////////////
// función fijo()
//////////////////////////////////////////////////

Esta es la funcion que se llama desde la siguiente pagina:

// Este archivo: /Foros/arbol.php

////////////////////////////////////////////////////
// archivos de inclusión
////////////////////////////////////////////////////
require_once("plantilla.php");
require_once("funciones.php");

// obtiene la lista de secuencia de un artículo
// determinado y sus relacionados


// información del encabezado
asignarEncabezado();


// logotipo y menú de navegación
abrirPagina(true,$aMENUGEN);


////////////////////////////////////////////////////
// Se establece la conexión
// con un usuario predeterminado
// con privilegios limitados
////////////////////////////////////////////////////
conectar(USERNORMAL,PSWUSERNORMAL);
[php]
A ver si me podeis decir lo que falla!!

Un saludo!!!
  #7 (permalink)  
Antiguo 24/08/2006, 15:28
 
Fecha de Ingreso: agosto-2006
Mensajes: 1
Antigüedad: 17 años, 8 meses
Puntos: 0
hola amigo, deseo poder aprender a programar en php, tenes algun buen buen tutorial para mi
  #8 (permalink)  
Antiguo 24/08/2006, 18:52
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Amigo .. pasate por el foro de PHP (general) y mira el mensaje que dice "FAQ's del foro PHP":

Concretamente la 2ª FAQ:
http://www.forosdelweb.com/showthrea...936#post238936

Si quieres aprender de Programaciòn Orientada a objetos (con PHP) en las FAQ's de este foro también tienes links hacia tutoriales:
http://www.forosdelweb.com/showpost....40&postcount=2

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:34.