Foros del Web » Programando para Internet » PHP »

Error con registro SQL

Estas en el tema de Error con registro SQL en el foro de PHP en Foros del Web. Hola. No se por qué demonios está mal esta sentencia... al ejecutarla: Código PHP: mysql_db_query ( "dolarweb" , "insert into peliculas (titulo,comentario,imagen,ficha) values ('$_POST[" titulo "]','$_POST[" comentario "]','$_POST[" imagen "]','$_POST[" ...
  #1 (permalink)  
Antiguo 05/09/2003, 11:21
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Error con registro SQL

Hola. No se por qué demonios está mal esta sentencia... al ejecutarla:
Código PHP:
mysql_db_query("dolarweb","insert into peliculas (titulo,comentario,imagen,ficha) values ('$_POST["titulo"]','$_POST["comentario"]','$_POST["imagen"]','$_POST["ficha"]')"); 

Me devuelve este error:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /home/webcindario/dolarweb/subirelink.php on line 34


¿¿POR QUÉ?? no está bien escrita?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 05/09/2003, 11:30
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
Tienes las variables mal puestas , tienen de estar concatendas por que hay comillas entre ellas

tendria de ir asi
Código PHP:
mysql_db_query("dolarweb","insert into peliculas (titulo,comentario,imagen,ficha) 
values ('"
.$_POST['titulo']."','".$_POST['comentario']."','".$_POST['imagen']."','".$_POST['ficha']."')"); 
espero que te sirva,

Por cierto cunado usas las $_POST es mejor pasarlas a variable normal
te evitas mucho quebraderos de cabeza como estos

Código PHP:
$titulo=$_POST['titulo'];
etc.. 
un saludo
  #3 (permalink)  
Antiguo 05/09/2003, 11:38
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Muchísimas gracias Jordi1!!!, has sido rapidísimo!!, y si no fuese con $_POST (ya lo pregunto por aprender) sería así??:

values ("$A","$B")

Gracias! de verdad
  #4 (permalink)  
Antiguo 05/09/2003, 11:42
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 14 años, 4 meses
Puntos: 0
Ah, y en todos los manuales que he encontrado, no viene nada de reglas para concatenar, y esta es la 3ª vez que me tienes que ayudar con algo como esto... ¿Me puedes decir donde puedo a apreder a hacerlo (un manual que haya en alguna web)? o si no es molestia, que reglas hay??
  #5 (permalink)  
Antiguo 05/09/2003, 12:14
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
mas o menos las reglas son asi

cuando hay comillas doble dentro de ellas solo pueden ir simples o al reves, pero no puedes poner comillas dobles dentro de dobles ni simples dentro de simples.

Por eso es lo de concatenar, los $POST[' '] llevan comillas simples y como , en una consulta mysql tienes de encerrar las variables de texto entre comillas , en este caso, como la consulta lleva comillas dobles, pues las tienes de encerrar entre comillas simples, asi pues, el post no lo puedes encerrar entre comillas ya que la consulta lo lleva, pues bien, lo que haces es sacarlo de las
comillas , cierras las comillas de la consulta y pones un punto que
quiere decir une esta cadena, cuando acabas la variable, pues pones otro punto para unir la cadena y abres otra vez comillas.


No se si me explico bien, pero mas o menos se entiende.

asi pues las variables $A, $B, por lo dicho irian '$A', '$B', o bien

xxxx".$A."xxxxxx".$B."xxxxx

venga a ver si te sirve

un saludo
  #6 (permalink)  
Antiguo 05/09/2003, 15:30
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Hola,

Bueno, la explicacion de Jordi1 no es del todo correcta. Si se pueden meter arrays dentro de una cadena con "":
Código PHP:
echo "esto funciona {$_POST['var']}, a que si?"
Tambien se puede usar la sintaxis HEREDOC.

Todo esto viene explicado en el manual, en la seccion dedicada a las variables tipo string (http://www.php.net/types.string) en bonito ingles.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 05/09/2003, 15:43
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 14 años, 8 meses
Puntos: 1
Es lo que nos pasa a muchos mortales de este pais que en ingles no sabemos ni lo que quiere decir yes;

Un apregunta josemi en esta consulta podriamos ponerlo asi?
Código PHP:
mysql_db_query("dolarweb","insert into peliculas (titulo,comentario,imagen,ficha) values ({$_POST['titulo']},{$_POST['comentario']},{$_POST['imagen']},{$_POST['ficha']})"); 
  #8 (permalink)  
Antiguo 05/09/2003, 16:07
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 6 meses
Puntos: 16
Poder, si. Y PHP no se quejara. El que si se quejara sera MySQL, porque te has olvidado de las ' en los valores de texto:
Código PHP:
mysql_db_query("dolarweb","insert into peliculas (titulo,comentario,imagen,ficha) values  ('{$_POST['titulo']}','{$_POST['comentario']}','{$_POST
['imagen']}','{$_POST['ficha']}')"
); 
Es decir, donde ponias $variable, ahora debes poner {$array['indice']}.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 16:13.