Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] mysqli dentro de una funcion

Estas en el tema de mysqli dentro de una funcion en el foro de PHP en Foros del Web. buenas tengo un problema con un php muy sencillo que es este: Código PHP: <?php  $mysqli  =  mysqli_connect ( "127.0.0.1" ,  "root" ,  "" ,  ...
  #1 (permalink)  
Antiguo 11/10/2013, 19:31
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 78
Antigüedad: 11 años, 8 meses
Puntos: 2
mysqli dentro de una funcion

buenas
tengo un problema con un php muy sencillo que es este:

Código PHP:
<?php 
$mysqli 
mysqli_connect("127.0.0.1""root""""legue");
if (
mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}
function 
mifunc() {
    echo 
"entrando en mifunc";
    
$query mysqli_query($mysqli"SELECT * FROM `usuarios`");
    
$result mysqli_fetch_array($query);
    echo 
$result['id'];
}
mifunc();
?>
Actualmente no me funciona y el problema lo tengo en function ya que si se lo quito me funciona bien pero claro no me serviría para lo que lo quiero.

Es la primera vez que uso mysqli dentro de un function por lo que no se como funciona el tema.
Haciendo pruebas conseguí que funcione poniéndolo de esta forma.


Código PHP:
<?php 
$mysqli 
mysqli_connect("127.0.0.1""root""""legue");
if (
mysqli_connect_errno()) {
    
printf("Connect failed: %s\n"mysqli_connect_error());
    exit();
}
function 
mifunc($mysqli) {
    echo 
"entrando en mifunc";
    
$query mysqli_query($mysqli"SELECT * FROM `usuarios`");
    
$result mysqli_fetch_array($query);
    echo 
$result['id'];
}
mifunc($mysqli);
?>
Hay mas formas de conseguirlo?

gracias por adelantado
  #2 (permalink)  
Antiguo 11/10/2013, 19:54
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: mysqli dentro de una funcion

Si usas el estilo orientado a objetos no tienes que pasar el link de conexión, por ejemplo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $mysqli = new mysqli("localhost", "root", "12345", "test");
  4.  
  5. if ($mysqli->connect_errno) {
  6.     printf("Connect failed: %s\n", $mysqli->connect_error);
  7.     exit();
  8. }
  9.  
  10. function mifunc($mysqli) {
  11.     echo "entrando en mifunc";
  12.     $query = $mysqli->query("SELECT * FROM `usuarios`");
  13.     $result = $query->fetch_assoc();
  14.     echo $result['id'];
  15. }
  16.  
  17. mifunc($mysqli);
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 11/10/2013, 20:14
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 13 años, 5 meses
Puntos: 12
Respuesta: mysqli dentro de una funcion

function mifunc() {

$query = mysqli_query($mysqli, "SELECT * FROM `usuarios`");
$result = mysqli_fetch_array($query);
return $result['id'];
}

echo mifunc();
  #4 (permalink)  
Antiguo 11/10/2013, 20:43
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: mysqli dentro de una funcion

Es sólo un ejemplo y el return es opcional.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 11/10/2013, 22:15
Avatar de freddy31DA  
Fecha de Ingreso: junio-2012
Mensajes: 84
Antigüedad: 12 años, 5 meses
Puntos: 2
Respuesta: mysqli dentro de una funcion

esta funcion me permite realizar paginacion usando la extensión mysqli
require_once 'config.php';
function getCountries($num, $total){
$conexion = mysqli_connect(HOST,USER,PASS,BD);
$consulta = "SELECT name FROM countries LIMIT $num,$total";
$result = $conexion->query($consulta);
$arr = array();
while($row = mysqli_fetch_array($result)){
$arr[] = $row;
}
return $arr;

if(!$conexion){
echo mysqli_error();
}
}

config.php
<?php

define('HOST','localhost');
define('USER','root');
define('PASS','trtr01');
define('BD','mundo');

?>

le mando datos con ajax a $total
  #6 (permalink)  
Antiguo 12/10/2013, 00:20
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 78
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: mysqli dentro de una funcion

Muchas gracias, al parecer la única opción es hacerlo orientado a objeto.
Dejo el tema como solucionado.

muchas gracias de nuevo.
  #7 (permalink)  
Antiguo 19/12/2013, 07:02
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 9 meses
Puntos: 96
Respuesta: mysqli dentro de una funcion

lo podrias haber hecho asi
Código PHP:
Ver original
  1. function mifuncion(){
  2. global $mysqli;
  3. ...
  4. ...
  5. }
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #8 (permalink)  
Antiguo 20/12/2013, 06:05
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 78
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: mysqli dentro de una funcion

Ahora mismo lo tengo funcionando poniéndolo como una variable mas que se le manda a la función y la verdad es que es muy repetitivo tener que poner $mysqli cada vez que llamo a una función pero con lo que me as enseñado ahora ya lo puedo poner de una forma mas eficiente.

Muchas gracias de nuevo xSkArx.

Etiquetas: funcion, mysql, mysqli, select, sql, usuarios
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:56.