New question

Question:

Date: 04-11-2019 14:33:48 (In Spanish)

amigos soy nuevo en esta comunidad, y programando.[Unresolved]

como nuevo en programación ya encontré mi primera piedra en el camino, tengo un error que no lo detallo si me pueden ayudar muchas gracias.

me sale el siguiente error:
Parse error: syntax error, unexpected ''$fecha_nacimiento'' (T_CONSTANT_ENCAPSED_STRING) in C:\xampp\htdocs\sisViPri\formulario\guardar.php on line 36

el codigo es el siguiente:
<?php
//conectamos Con el servidor
$conectar=@mysql_connect('localhost','root','');
//verificamos la conexion
if(!$conectar){
echo"No Se Pudo Conectar Con El Servidor";
}else{

$base=mysql_select_db('bd_empleados');
if(!$base){
echo"No Se Encontro La Base De Datos";
}
}
//recuperar las variables
$cedula=$_POST['cedula'];
$nombres=$_POST['nombres'];
$apellidos=$_POST['apellidos'];
$fecha_nacimiento=$_POST['fecha_nacimiento'];
$lugar_nacimiento=$_POST['lugar_nacimiento'];
$numeros_telefonicos=$_POST['numeros_telefonicos'];
$correo=$_POST['correo'];
$num_cta_bancaria=$_POST['num_cta_bancaria'];
$tipo_cuenta=$_POST['tipo_cuenta'];
$banco=$_POST['banco'];
$cta_pertenece=$_POST['cta_pertenece'];
$ced_pertenece_cta=$_POST['ced_pertenece_cta'];
$clave_trabajo=$_POST['clave_trabajo'];
$fecha_ingreso=$_POST['fecha_ingreso'];
$fecha_retiro=$_POST['fecha_retiro'];
$causa_retiro=$_POST['causa_retiro'];
$num_carp_exp=$_POST['num_carp_exp'];
//hacemos la sentencia de sql
$sql="INSERT INTO bd_empleados VALUES('$cedula',
'$nombres',
'$apellidos')"
'$fecha_nacimiento')"
'$lugar_nacimiento')"
'$numeros_telefonicos')"
'$correo')"
'$num_cta_bancaria')"
'$tipo_cuenta')"
'$banco')"
'$cta_pertenece')"
'$ced_pertenece_cta')"
'$clave_trabajo')"
'$fecha_ingreso')"
'$fecha_retiro')"
'$causa_retiro')"
'$num_carp_exp')";
//ejecutamos la sentencia de sql
$ejecutar=mysql_query($sql);
//verificamos la ejecucion
if(!$ejecutar){
echo"Hubo Algun Error";
}else{
echo"Datos Guardados Correctamente<br><a href='index.html'>Volver</a>";
}
?>
Tags: Votes: 0 - Answers: 5 - Views: 12 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 04-11-2019 15:11:09 El problema son todos esos paréntesis de cierre en tu consulta SQL. La sintaxis correcta es:
    $sql = "INSERT INTO nombre_tabla VALUES ('$valor1', '$valor2', '$valor3')";

    Asumiendo que estas proporcionando valores para todas las columnas de la tabla.

    Una observación. La extensión Mysql de PHP esta obsoleta desde PHP 5.5 y se eliminó desde PHP 7.0, por lo que es recomendable que utilices Mysqli o PDO.
      Votes: 2 - Link answer
     
  • Date: 05-11-2019 01:18:44 ok gracias por el aporte voy a corregir y te comento   Votes: 0 - Link answer
     
  • Date: 05-11-2019 06:15:36 Evans, tal como dijo Juan Vasquez, el problema es la sintaxis ya que estás concatenando mal la cadena que almacenas en $sql.
    En lo que muestras la cadena $sql contiene lo siguiente ... "INSERT INTO bd_empleados VALUES('$cedula',
    '$nombres',
    '$apellidos')"
    El resto de líneas NO lo toma en cuenta porque cerraste las comillas después de $apellidos.
    Otra observación es que me parece que están mandando mal los parámetros. Conste que se insertará en la base de datos el valor '$nombres' y no el valor de dicha variable.
    $sql="INSERT INTO bd_empleados VALUES('" + $cedula + "', '" + $nombres + "', '" + $apellidos + "')" ...

    Espero haberte ayudado. Saludos
      Votes: 2 - Link answer
     
  • Date: 05-11-2019 13:21:58 si estas en lo cierto gracias a ambos por ayudarme..   Votes: 0 - Link answer
     
  • Date: 06-11-2019 08:23:52 Una observación a la respuesta de Martín: la clausula $sql inicia y finaliza con comillas dobles. Esto implica que las variables PHP se expanden pero no así otros caracteres, entonces las comillas sencillas se interpretan como comillas sencillas (que son necesarias en la clausula) y las variables toman su valor, por lo que no es necesario concatenar cadenas como indica Martín. Por ejemplo:
    $valor1 = 'Juan';
    $valor2 = 'Perez';
    $sql = "INSERT INTO nombres ('$valor1', '$valor2')";

    Se interpretará como:
    $sql = "INSERT INTO nombres ('Juan', 'Perez')";

    Adicionalmente, en PHP las cadenas se concatenan con el operador punto (.) no con '+' (tal vez Martín está pensando en Java)
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In