Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 9 de 9

Tema: Error: unexpected T_STRING

  1. #1
    Recien Llegado! Merodeador
    Fecha de Ingreso
    21 jun, 14
    Mensajes
    9
    Poder de Reputación
    0

    Error: unexpected T_STRING

    Hola amigos.

    He estado intentando crear un script con php para ingresar una serie de datos de un formulario a una base de datos.
    He creado un formulario con diferentes campos y un script para comprobar que no estén vacíos, que estén escritos correctamente, etc.
    El problema llega cuando quiero introducir esos datos a la base de datos.
    El error es el siguiente:

    Parse error: syntax error, unexpected T_STRING in C:\...\insertar-registros.php on line 70

    Y la línea 70 es la siguiente:

    Código PHP:
    mysql_query(INSERT INTO usuarios (emailpasswordnombreapellidocolegiofechaespecialidaddescricion)VALUES ($email$password$nombre$colegio$fecha$especialidad$descripcion) or die(mysql_error ()); 
    He creado correctamente una conexión con la base de datos y he evitado la inyección SQL anteriormente.

    ¿Alguien puede echarme una mano?
    Salu2. :)

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    Hola!

    Siempre que aparezca el mensaje Syntax error, unexpected T_STING significa que dejaste una cadena de texto sin comillas u olvidaste cerrar la cadena de caracteres. En este caso, no envolviste la consulta SQL en comillas:

    Código PHP:
    mysql_query"INSERT INTO usuarios (email, password, nombre, apellido, colegio, fecha, especialidad, descricion) VALUES ($email$password$nombre$colegio$fecha$especialidad$descripcion)" ) or die( mysql_error () ); 
    Saludos!

  3. #3
    Recien Llegado! Merodeador
    Fecha de Ingreso
    21 jun, 14
    Mensajes
    9
    Poder de Reputación
    0
    Hola de nuevo.

    Gracias skaparate, pero es que cometo errores de novato... ;)
    Bueno, pues después de aplicar la consulta tal como me dijiste me salen otra serie de errores.
    Para empezar me salen estos, tantos como variables:

    ( ! ) Notice: Undefined variable: email in C:\...\insertar-registros.php on line 16

    En realidad no es la primera vez que me sale este error, pero otras veces lo solucioné aplicando comillas a las variables, pero en esto no funcionó.
    Además, al final de la página me sale el siguiente mensaje:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' , , , , , )' at line 1


    Dejo los dos archivos que tengo, por si acaso:

    conexion.php
    Código PHP:
    <?php
    $dbhost 
    "localhost" ;
    $dbuser "root" ;
    $dbpass "" ;
    $db "prueba" ;
    $conectar mysql_connect($dbhost,$dbuser,$dbpass) ; mysql_select_db($db) ;
    ?>
    insertar-registros.php
    Código PHP:
    8:   <body>
    9:   <?php require_once('Connections/conexion.php'); ?>
    10: <?php
    11
    :
    12$state=false;
    13:
    14$conectar
    15
    :
    16mysql_query("INSERT INTO usuarios(email, password, nombre, apellido, colegio, fecha, especialidad, descricion)VALUES($email$password$nombre$colegio$fecha$especialidad$descripcion)") or die(mysql_error ());
    17:
    18$state true;
    19:
    20?>
    21:
    22: <?php if ($state) { ?>
    23: <p><em>Registro insertado correctamente</em></p>
    24: <?php ?> 
    25: </body>
    (Como se puede ver he aligerado y he eliminado líneas de código innecesario)

    ¿Alguien puede ayudarme? :).

    Salu2.

  4. #4
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    Cuando PHP dice "Undefined variable NNN..." significa que la variable NNN no existe en ninguna parte del código. En este caso, ninguna de las variables que hay en la consulta ($email, $password, etc.) existe. Probablemente las borraste al "limpiar" el código :P.

  5. #5
    Esto empieza a ser un vicio... Habitante Avatar de Doodleo
    Fecha de Ingreso
    25 abr, 11
    Ubicación
    Galicia (España)
    Mensajes
    1,329
    Poder de Reputación
    17
    Como bien ha dicho el amigo @skaparate no has definido las variables, y tú código puede ser optimizado para funcionar mejor (a parte de ser más legible :P)

    conexion.php
    Código PHP:
    <?php

    $db_host 
    "localhost";
    $db_user "root";
    $db_pass "password";
    $db_name "prueba";

    $mysql mysql_connect$db_host$db_user$db_pass ) or die( 'Error al conectar a la base de datos: ' mysql_error() );
    mysql_select_db$db_name ) or die( 'Error al seleccionar la base de datos: ' mysql_error() );

    ?>
    insertar-registros.php
    Código PHP:
    <body>
    <?php

    require_once 'Connections/conexion.php';

    $email $_POST['email'];
    $password $_POST['password'];
    // Declaras el resto de variables aquí

    if( mysql_query"INSERT INTO usuarios (email, password, nombre, apellido, colegio, fecha, especialidad, descricion) VALUES ($email$password$nombre$colegio$fecha$especialidad$descripcion)" ) ){
      echo 
    '<p><em>Registro insertado correctamente</em></p> ';
    }

    ?>
    </body>

  6. #6
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    13 dic, 17
    Mensajes
    2
    Poder de Reputación
    0
    Hola, yo también tengo un problema con el mismo error pero con otro código distinto en todos los foros que he estado hablan de comillas simples dentro de las dobles o biceversa pero ese no es mi caso y que en esa línea no hay nada escrito.
    Yo lo que pretendo hacer en recoger los datos de un formulario sencillo, nombre,email y la tabla se llama alumnos.

    resulta que habré hecho el ejercicio como unas 6 o 7 veces y dos de cada tres me da error y es que lo comparo con los que hecho que funcionan, y no encuentro la diferencia, y dos de cada tres veces me da error.

    este es el error:

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\ya\base1\alumnos\insertar_alumnos1 .php on line 25

    pero resulta que en la línea 25 no hay nada y en la línea 23 esta esta línea
    echo "Los datos se han insertado";
    y en la línea 26 el cierre de php


    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    </head>
    <body>

    <?php

    include("conexion.php");

    $nombre=$_REQUEST['nombre'];
    $mail=$_REQUEST['mail'];
    $curso=$_REQUEST['curso'];

    $con=mysql_connect($host,$user,$pw) or die("No se ha conectado".mysql_error());
    mysql_select_db("base1",$con) or die("No se ha conectado".mysql_error());

    mysql_query("INSERT INTO alumnos(nombre,mail,curso) VALUES('$nombre','$mail','$curso')",$con)or die("No se ha conectado".mysql_error());

    mysql_close($con);
    echo "Los datos se han insertado";


    ?>

    </body>
    </html>



    código HTML

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    </head>
    <body>
    <h2>Registro de datos en una tabla</h2>

    <form action="insertar_alumnos.php">
    Ingrese su nombre: <br>
    <input type="text" name="nombre"><br>
    Ingrese su correo: <br>
    <input type="text" name="mail"><br>

    <select name="curso" id="curso">
    <option value="1">PHP</option>
    <option value="2">AJAX</option>
    <option value="3">JSP</option>
    </select>
    <br>
    <input type="submit" value="confirmar">;

    </form>
    </body>
    </html>

    No se como solucionar este problema ya que no encuentro nada anormal en el código, gracias por vuestra ayuda

  7. #7
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    @registrosmaxx, ¿ese es el código tal cual lo ejecutas o lo modificaste? Lo único malo que veo es que estás usando funciones obsoletas: mysql_* está obsoleto y debes utilizar mysqli_*.

    Tu código migrado a mysqli:

    Código:
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>
                Document
            </title>
        </head>
        <body>
            <?php
    require_once 'conexion.php';
    $nombre=$_REQUEST['nombre'];
    $mail=$_REQUEST['mail'];
    $curso=$_REQUEST['curso'];
    // $host, $usuario, $password y $base_de_datos están en 'conexion.php'
    $con = new mysqli( $host, $usuario, $password, $base_de_datos );
    if ( $con->connect_errorno ) {
        echo '<p class="error connection-error">No me pude conectar a la base de datos: ' . $con->connect_error . '</p>';
        exit;
    }
    $query = $con->escape_string( "INSERT INTO alumnos(nombre,mail,curso) VALUES('$nombre','$mail','$curso')" );
    $result = $con->query( $query );
    if ( $result === false ) {
        echo '<p class="error query-failure">No se ejecutó la consulta: (' . $con->errno . ') ' . $con->error . '</p>';
    } else {
        echo '<p class="success query-success">Datos guardados!</p>';
        $result->close();
    }
    $con->close();
            ?>
        </body>
    </html>

  8. #8
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    13 dic, 17
    Mensajes
    2
    Poder de Reputación
    0
    Hola, gracias por responder, estaba utilizando estas funciones absoletas porque la función mysqli_ me estaba dando problemas de conexión ya que yo para seguir el tutorial tengo instalada la versión de php 5.3 y a lo mejor era por eso que me daba los errores de conexión he instalado la última versión y ya no meda el error de conexión de ahora en adelante y voy a utilizar esta.
    El error de este script no se lo que será ya lo he dejado por imposible porque todos los que lo han visto no encuentran nada, y encima el error lo da en una línea que no hay nada escrito muy raro todo, lo dejo así, porque sino me voy a volver loco buscando la solución.

    Y si tiene un include a una conexión que esta probada y funciona con otros scrips.
    gracias por el consejo de la funciones mysql.

    mxx

  9. #9
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    2,066
    Poder de Reputación
    21
    @registrosmaxx, por casualidad, ¿intentaste borrar todos los espacios en blanco entre el ; y la etiqueta ?>?:

    Código:
    // Omito el código completo para no copiar/pegar todo.
    mysql_close($con);
    echo "Los datos se han insertado"; ?>
    Tal vez funcione.

Temas Similares

  1. Parse error: syntax error, unexpected end of file
    Por Plaza94 en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 1
    Último Mensaje: 01/08/2013, 11:02
  2. Ayuda :Parse error: syntax error, unexpected '}
    Por ray4632 en el foro Php Bases de Datos y MySQL (Nuevo!)
    Respuestas: 11
    Último Mensaje: 02/02/2013, 23:34
  3. error al registrarme en razy hosting. (error last name)
    Por TOPMOI en el foro Foro General
    Respuestas: 3
    Último Mensaje: 10/03/2008, 21:45

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •