mysql_fetch_array()
Estoy haciendo la transición de los métodos de uso de MySQL PHP de la 'vieja escuela' , etc. y estoy tratando de ser más Drupally usando la API de base de datos en mis módulos.
Simplemente quiero regresar e imprimir un valor. Por ejemplo:
$query = db_query("SELECT zip FROM {zipcodes} WHERE city = :city LIMIT 1", array(":city" => $city));
Sé que el valor está ahí, puedo acceder e imprimirlo utilizando métodos tradicionales fuera de la API de la base de datos.
print $query->zip
no está trabajando.
La documentación API es tan clara como el barro.
¿Alguien puede decirme la forma correcta de acceder a estos valores?
¿Hay algún buen tutorial que alguien pueda recomendar también?
Aquí le mostramos cómo usar la API de base de datos en Drupal 7 sin escribir una consulta MySQL:
fuente
Tiene que repetir su consulta $, no puede suponer que solo tiene un resultado con la consulta dada anteriormente.
Si sabe que solo tiene un resultado, puede llamar a fetchObject en su consulta ->
print $ query-> zip debería darte lo que quieres.
fuente
yo lo haría
si desea exactamente una fila del conjunto de resultados. De lo contrario, recorrer con foreach es la mejor opción, como se sugirió anteriormente.
fuente
Sé que esto es viejo, pero puedes y debes hacer:
fuente
Bueno, tienes formas de hacer esto correctamente en Drupa 7:
db_select: en Drupal hay una función que devuelve un objeto que construye con él la consulta SQL: https://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_select/7 . Tiene un método en el objeto llamado rango. puedes usarlo.
Consulta de campo de entidad que es una clase que construye una consulta SQL sobre entidades: https://www.drupal.org/node/1343708 . Esto también tiene el método de rango.
fuente
Drupal 7
Utilice esta consulta para un solo resultado:
En lugar de usar esto
porque genera advertencia.
fuente
Drupal 6
$query
será su resultado. Debe obtener valores de él. En su caso, si obtiene solo 1 fila y 1 columna, es decir, zip, para obtener directamente$query->zip
no funcionará ya que $ query es un conjunto de resultados, no un objeto cargado o una matriz. Entonces esto debería hacerNota:
db_fetch_array
es otra API para recuperar valores en formato de matrizfuente