Foros del Web » Programando para Internet » PHP »

Consulta SQL sin resultado

Estas en el tema de Consulta SQL sin resultado en el foro de PHP en Foros del Web. Hola. He escrito esta consulta (probando con PHP y con PHP nuke): En PHP-Nuke: Código PHP: sql_query ( "CREATE TABLE " . $categoria . "_" . $titulo ...
  #1 (permalink)  
Antiguo 10/02/2004, 09:16
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Consulta SQL sin resultado

Hola.
He escrito esta consulta (probando con PHP y con PHP nuke):

En PHP-Nuke:
Código PHP:
sql_query("CREATE TABLE ".$categoria."_".$titulo." ('tipo' VARCHAR(5),'dato' VARCHAR(50),'valor' TEXT"$dbc); 
$dbc contiene todos los datos CORRECTOS (hace el resto de consultas bien) para conectar con la base de datos.

En PHP puro:
Código PHP:
mysql_connect("XXXXX","XXXXX","XXXXXX");
mysql_db_query("Sql30716_2","create table '$categoria_$titulo' ('tipo' VARCHAR(5),'dato' VARCHAR(50),'valor' TEXT"); 
Al ejecutar el script de las dos formas NO ME SALE NI UN SÓLO FALLO, pero el caso es que no crea la tabla... no sale ningún fallo en pantalla eh.

¿Qué es lo que está mal escrito? ¿Por qué no salen ni siquiera errores?.

Gracias de antemano
  #2 (permalink)  
Antiguo 10/02/2004, 09:20
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

No se como sera con NUKE, pero para PHP puro y duro, si quieres ver posibles errores de ejecucion de MySQL, debes usar mysql_error() (www.php.net/mysql_error). Tambien es recomendable montar la consulta en una variable, para poder mostrarla:
Código PHP:
$sql="create table '$categoria_$titulo' ('tipo' VARCHAR(5),'dato' VARCHAR(50),'valor' TEXT";
mysql_db_query("Sql30716_2",$sql) or die("ERROR: $sql <br>MySQL dice: ".mysql_error()); 
Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 10/02/2004, 09:26
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Gracias josemi. Me dice:

MySQL dice: You have an error in your SQL syntax near ''perio' ('tipo' VARCHAR(5),'dato' VARCHAR(50),'valor' TEXT' at line 1

Pero yo creo que está bien escrito... ¿ves el error?
  #4 (permalink)  
Antiguo 10/02/2004, 09:36
Avatar de maralbust@netsc  
Fecha de Ingreso: julio-2003
Ubicación: Santiago
Mensajes: 242
Antigüedad: 14 años, 5 meses
Puntos: 0
no se mucho pero puedo ayudar

categoria y titulo que son????
tablas?????

trate de ejecutar la sentencia en mi BD y me dice near categoria
__________________
"La imaginacion es el limite"
bee-freaks
  #5 (permalink)  
Antiguo 10/02/2004, 09:39
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bien, ¿$categoria o $titulo tienen espacios en blanco? Porque un nombre de tabla no puede tener un espacio en blanco. Estarias haciendo:

CREATE TABLE parte uno (...

Lo que no es sintaxis correcta de CREATE TABLE.

En http://www.mysql.com/doc/en/Legal_names.html tienes mas info sobre los caracteres permitidos (NOTA: el espacio no es un caracter permitido para nombres de ficheros en muchos sistemas operativos).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 10/02/2004, 10:11
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Muchas gracias a los dos. No, las dos variables son para componer el nombre de la tabla y no son nulas. El problema eran las ' '

Ahora funciona:
Código PHP:
$sql="create table ".$categoria."_".$titulo." (tipo VARCHAR(5),dato VARCHAR(50),valor TEXT)";
mysql_db_query("Sql30716_2",$sql) or die("ERROR: $sql <br>MySQL dice: ".mysql_error()); 
Muchas gracias y, hasta la próxima.
  #7 (permalink)  
Antiguo 10/02/2004, 16:42
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno... sólo un comentario...
El PHP-Nuke utiliza su propia capa de abstracción de BD... (en realidad, no tan propia porque creo que utiliza la del PhpBB)... por eso la función sql_query() sólo se podrá utilizar si se ha definido previamente. El Nuke lo define creo que en la constante SQL_LAYER, que hace cargar la clase sql_db del archivo correspondiente (Mysql, si es ésta la Bd que utilizas)

Saludos
  #8 (permalink)  
Antiguo 11/02/2004, 05:36
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Gracias. Si, basta con incluir (include) el archivo mainfile.php, pero el problema es que como no da errores, directamente no ejecutaba la query

Gracias a todos
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 15:04.