Foros del Web » Programando para Internet » PHP »

Error: mysql_db_query

Estas en el tema de Error: mysql_db_query en el foro de PHP en Foros del Web. Existe alguna longitud limite que deba tener mi query al insertarlo en la funcion?? Código PHP: mysql_db_query ( cnxBaseDatos (), $sqlstm );  La conexion a ...
  #1 (permalink)  
Antiguo 22/10/2005, 00:35
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
Error: mysql_db_query

Existe alguna longitud limite que deba tener mi query al insertarlo en la funcion??
Código PHP:
mysql_db_query(cnxBaseDatos(),$sqlstm); 
La conexion a la base de datos esta bien, lo que me da error es el contenido de $sqlstm,
Código PHP:
$sqlstm="insert into publicaciones (idpub, fecha , marca) values (8,'','primero') ;
 insert into publicaciones (idpub, fecha , marca) values (9,'','segundo')" 
¿alguien me puede decir cual es el error?? gracias de antemano
__________________
:adios:
  #2 (permalink)  
Antiguo 22/10/2005, 02:22
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Trata de no utilizar mysql_db_query()... sobrertodo si estás trabajando sobre una misma BD. En su lugar utiliza simplemente mysql_query().

En tu caso puedes forzar un mensaje de error
Código PHP:
mysql_db_query(cnxBaseDatos(),$sqlstm) or die("Error ::".mysql_error()); 
¿Qué es cnxBaseDatos()?¿Devuelve el nombre de la BD?¿El identificador de la conexión?¿Realiza una nueva conexión?...

Trata, como te dije, de utilizar mysql_query().

Saludos
  #3 (permalink)  
Antiguo 22/10/2005, 17:21
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
al usar mysql_db_query, me menciona que hay error, pero no me da detalle. El caso es que el error continúa.
Y si, cnxBaseDatos, me devuelve el nombre de la base de datos.
__________________
:adios:
  #4 (permalink)  
Antiguo 22/10/2005, 17:46
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Cita:
me menciona que hay error
¿Qué mensaje te da exactamente?

Lo más probable es que el error esté en tu SQL ($sqlstm). Prueba a forzar que te muestre la cadena generada y revisa que esté correcta (comillas, espacios, nombres de tablas, campos, etc.)
Código PHP:
mysql_db_query(cnxBaseDatos(), $sqlstm) or die("Error en <b>$sqlstm</b>::".mysql_error()); 
Saludos
  #5 (permalink)  
Antiguo 22/10/2005, 17:51
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Ah... insisto en que utilices mysql_select_db() y mysql_query() en lugar de mysql_db_query().
Puedes ver en la documentación oficial de PHP:
http://www.php.net/manual/en/functio...l-db-query.php
Dice esto acerca de mysql_db_query():
Cita:
Iniciado por manual oficial
This function is deprecated, do not use this function. Use mysql_select_db() and mysql_query() instead.
Saludos
  #6 (permalink)  
Antiguo 22/10/2005, 19:15
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 6 meses
Puntos: 1
Re:

Pues, me parece que el error esta en que quieres insertar un espacio en blanco en el campo "fecha"; pregunto ¿el Campo fecha es tipo fecha o caracter?; porque si es fecha (Date) no se pueden hacer conversiones explicitas de cadena a fecha.
Si realmente deseas insertar una fecha en la tabla primero debes convertir una cadena a fecha o tomar la fecha del sistema directamente (echale un ojo a la documentacion de PHP), o si no vas a insertar nada en ese campo, simplemente no lo incluyas en la instruccion
Código PHP:
$sqlstm="INSERT INTO publicaciones(idpub, marca) VALUES(8, 'primero')" 
Saludos!!!
  #7 (permalink)  
Antiguo 22/10/2005, 19:40
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Funciones como mysql_query() o mysql_db_query() sólo admiten una instrucción sql. En tu caso tienes dos insert dentro de la misma cadena.Tendrás que separarlos así:
Código PHP:
$sqlstm1 "insert into publicaciones (idpub, fecha , marca) values (8,'','primero')" ;
$sqlstm2 insert into publicaciones (idpubfecha marcavalues (9,'','segundo')"; 
Y hacer el query() dos veces.

Saludos
  #8 (permalink)  
Antiguo 23/10/2005, 00:59
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
Ya lo pude solucionar. Aqui pongo la solucion que encontré, por si alguien le sirve, o le interese.
La idea esta en repetir
Código PHP:
mysql_db_query(cnxBaseDatos(),$sqlstm); 
tantas veces como numero de registros quieras guardar. Efectivamente, en $sqlstm, solo se puede guardar un query a la vez.
__________________
:adios:
  #9 (permalink)  
Antiguo 23/10/2005, 01:14
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Insistir en lo que insitió jpinedo: Es recomendable separar funciones. Usar mysql_select_db() (una sola vez) y mysql_query() (tantas veces sea necesario) en lugar de mysql_db_query(). Verás que en cuestiones de administrar posibles errores te resultará más práctico... además si pones la función de conexión como parámetro es posible que dentro de ella ya hagas la selección de la BD por lo cuál hacer lo que haces estaría de más...

Me entró la curiosidad. ¿cuál es tu función de conexión --código--??
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 23/10/2005, 01:30
Avatar de miglos  
Fecha de Ingreso: enero-2005
Ubicación: Perú
Mensajes: 235
Antigüedad: 19 años, 3 meses
Puntos: 1
$conn = mysql_connect(cnxHost(),cnxUsuario(),cnxPassword() );
__________________
:adios:
  #11 (permalink)  
Antiguo 23/10/2005, 02:02
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
¿solo eso??.... ¿ni un return???...

Entonces esperemos que alguien nos explique cómo es posible que eso funcione ... según yo, no debería ser

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 23/10/2005, 02:06
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
según lo que yo veo tiene varias funciones que retornan los parámetros de conexión:
Código PHP:
cnxHost() // Retorna el nobre del servidor.
cnxUsuario() // Retorna le nombre de usuario de la BD.
cnxPassword() // Retorna el password para ese usuario.
cnxBaseDatos() // Retorna el nombre de la BD que se va a utilizar. 
Luego utiliza:
Código PHP:
$conn mysql_connect(cnxHost(),cnxUsuario(),cnxPassword() );
//...
//...
mysql_db_query(cnxBaseDatos(),$sql); 
Saludos
  #13 (permalink)  
Antiguo 23/10/2005, 02:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por Miglos
Y si, cnxBaseDatos, me devuelve el nombre de la base de datos.
mmmm... . Cero y van dos que se me pasan esos "pequeños comentarios"...

En una primera leida había entendido cnxBaseDatos() retornaba el identificador de conexión... , notese que por eso mi pregunta fue "por la función de conexión"... pero bueno. Así sí

Paz, amor y baile
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 20:32.