¿Podemos enviar el resultado de la consulta mysql como valor de retorno de la función usando php?

Estoy creando una función que procesa la consulta y le devuelvo el resultado de retorno. así que usé el siguiente código:

function test(){
     $query = "select * from mytable where id=123";
     $data = mysql_query($query) or die(mysql_error());

     return $data;
}

$info = test();

¿Es posible? ¿Puedo usar $ info para obtener valores como $ info [0], $ info [1]?

preguntado el 10 de mayo de 11 a las 12:05

4 Respuestas

Te falta una parte vital, devolver el resultado de mysql_query () solo devuelve un puntero de resultado, no el conjunto de datos. Deberías agregar mysql_fetch_array, mysql_fetch_assoc or mysql_fetch_row:

function test(){
     $query = "select * from mytable where id=123 LIMIT 1";
     $data = mysql_query($query) or die(mysql_error());
     $result = mysql_fetch_row($data);

     return $result;
}

$info = test();

ahora puedes usar $ info [0], $ info [1]. Cuando usas mysql_fetch_assoc podría usar $ info ['fieldname'].

También agregué LÍMITE 1, ya que está enviando una ID larga, probablemente esta sea única y después de 1 resultado, lo más probable es que no se devuelva nada más.

contestado el 11 de mayo de 11 a las 11:05

echa un vistazo a mysql_fetch_array función.

Esta función le permite iterar el resultado de una consulta que es un recurso y convertir cada fila en una matriz. Por lo tanto, debe usar un ciclo while para obtener todas las filas de un recurso;

contestado el 10 de mayo de 11 a las 17:05

Puede hacer eso, sin embargo, en mi experiencia, es mejor mantener encapsulado el material de la base de datos, para que no exponga los recursos de MySQL fuera del contexto de la base de datos que luego necesita mysql_fetch_assoc() y similares en ellos.

Usaría PDO allí y devolvería los resultados de fetchAll(PDO::FETCH_ASSOC). De esa manera, $info tiene los datos que necesita sin necesidad de ejecutar más funciones de base de datos.

contestado el 10 de mayo de 11 a las 17:05

<?php

    $link = mysql_connect('localhost', 'USERNAME', 'PASSWORD');
    mysql_select_db('DB NAME', $link);

    function test()
    {
        $result = mysql_query("select * from wp_options");
        $data = array();

        while($row = mysql_fetch_array($result))
        {
            $data[] = $row;
        }

        return $data;
    }

    echo "<pre>";
    print_r(test());
    echo "</pre>";

    mysql_close($link);
?>

contestado el 11 de mayo de 11 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.