Foros del Web » Programando para Internet » PHP »

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Estas en el tema de Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) en el foro de PHP en Foros del Web. Hola a todos como ven en el titulo mi error es el que se ve ahí me gustaría saber como puedo solucionarlo desde ya gracias ...
  #1 (permalink)  
Antiguo 29/10/2012, 17:52
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Hola a todos como ven en el titulo mi error es el que se ve ahí me gustaría saber como puedo solucionarlo desde ya gracias dejo el código de error completo y el código php

ERROR

Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in C:\wamp\www\formclie.php on line 20

Código PHP:
<?php
    $mysqli 
= new mysqli('localhost','root','','libreta');
    if(
mysqli_connect_errno()){
        
printf("Imposible conectarse: %s\n"mysqli_connect_error());
        exit();
    }
    
//$query = "INSERT INTO cliente (nombre,apellido,rut,telefono,celular,direccion,comuna) values(?,?,?,?,?,?,?)";
    
$nombre $_POST['nombre'];
    
$apellido $_POST['apellido'];
    
$rut $_POST['rut'];
    
$telefono $_POST['telefono'];
    
$celular $_POST['celular'];
    
$direccion $_POST['direccion'];
    
$comuna $_POST['comuna'];
    
    
//echo 'Mi Nombre es: '.$nombre.' '.$apellido.' y soy de '.$comuna ;
   
    
$sentencia $mysqli->stmt_init();
   
    if(
$sentencia mysqli->prepare("INSERT INTO cliente (nombre,apellido,rut,telefono,celular,direccion,comuna) values(?,?,?,?,?,?,?)")){
        
$sentencia->bind_param('sssssss'$nombre$apellido$rut$telefono$celular$direccion$comuna);
        
$sentencia->execute();
        
$sentencia->bind_result($nombre,$apellido,$rut,$telefono,$celular,$direccion,$comuna);
        
$sentencia->fetch();
        
//printf("%s el nombre es%s\n", $nombre);
        
$sentencia->close();
    }
?>
espero su ayuda desde ya muchas gracias
  #2 (permalink)  
Antiguo 29/10/2012, 18:11
 
Fecha de Ingreso: enero-2009
Ubicación: San Lorenzo - Paraguay
Mensajes: 36
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Le falta el simbolo del dolar a $mysqli->prepare();

Código PHP:
    if($sentencia $mysqli->prepare("INSERT INTO cliente (nombre,apellido,rut,telefono,celular,direccion,comuna) values(?,?,?,?,?,?,?)")){ 
  #3 (permalink)  
Antiguo 29/10/2012, 18:12
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

a lo mejor es que le falta el signo de $

en el mysqli de esta linea

Código PHP:
Ver original
  1. $sentencia = mysqli->prepare("INSERT INTO cliente (nombre,apellido,rut,telefono,celular,direccion,comuna) values(?,?,?,?,?,?,?)")
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #4 (permalink)  
Antiguo 29/10/2012, 18:19
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Gracias por darse el tiempo, le coloque el $ como me dijeron pero me sale este error ahora

Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement in C:\wamp\www\formclie.php on line 23
Call Stack
# Time Memory Function Location
1 0.0011 147024 {main}( ) ..\formclie.php:0
2 0.0578 160448 mysqli_stmt->bind_result( ) ..\formclie.php:23

espero y me puedan seguir compartiendo sus conocimientos desde ya muchas gracias
  #5 (permalink)  
Antiguo 29/10/2012, 18:27
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Yo no sé mucho de MySQLi pero por leer el código el método ::bind_result() es para establecer valor a las variables pasadas como argumento desde un Select, el Insert creo que solo devuelve si se pudo ejecutar la consulta

Saludos
  #6 (permalink)  
Antiguo 29/10/2012, 18:36
 
Fecha de Ingreso: enero-2009
Ubicación: San Lorenzo - Paraguay
Mensajes: 36
Antigüedad: 15 años, 2 meses
Puntos: 6
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

No hace falta usar bind_result para el tipo de consulta INSERT

Prueba esto si te funciona:
Código PHP:
    $sentencia $mysqli->prepare("INSERT INTO cliente (nombre,apellido,rut,telefono,celular,direccion,comuna) values(?,?,?,?,?,?,?)");
    
$sentencia->bind_param('sssssss'$nombre$apellido$rut$telefono$celular$direccion$comuna); 
    
$sentencia->execute(); 
  #7 (permalink)  
Antiguo 29/10/2012, 18:43
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Muchas gracias si me resulto por fin guardo en la BD ahora seguire con las otras consultas Muchas Gracias
  #8 (permalink)  
Antiguo 30/10/2012, 20:25
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Amigos, ahora intento mostrar los campos nombre y apellido de la tabla de la BD, pero no me resulta, no me muestra error alguno, pero queda en blanco la página, miren aquí el código donde se inserta los datos.

Código PHP:
<?php
    $mysqli 
= new mysqli('localhost','root','','libreta');
    if(
mysqli_connect_errno()){
        
printf("Imposible conectarse: %s\n"mysqli_connect_error());
        exit();
    }
    
$nombre $_POST['nombre'];
    
$apellido $_POST['apellido'];
    
$rut $_POST['rut'];
    
$telefono $_POST['telefono'];
    
$celular $_POST['celular'];
    
$direccion $_POST['direccion'];
    
$comuna $_POST['comuna'];
    
    
$sentencia $mysqli->stmt_init();
    if(
$sentencia $mysqli->prepare("INSERT INTO cliente (nombre,apellido,rut,telefono,celular,direccion,comuna) values(?,?,?,?,?,?,?)")){
        
$sentencia->bind_param('sssssss'$nombre$apellido$rut$telefono$celular$direccion$comuna);
        
$sentencia->execute();
        
$sentencia->close();
    }
?>
<html>
    <head>
        <title>HOME</title>
    </head>
    <body>
        <table align=center border=2> 
            <a href="formclie.html">Ingresar Nuevo Cliente</a><br><tr>
            <a href="busquedaclie.php">Búsqueda Completa</a>
        </table>
    </body>
</html>
Luego si se fijan en el html que coloque abajo del php tengo 2 link el ingresar nuevo cliente funciona bien, pero el busqueda no pasa nada aquí les dejo el codigo de busquedaclie.php

Código PHP:
<?
    $mysqli 
= new mysqli('localhost','root','','libreta');
    if(
mysqli_connect_errno()){
        
printf("Imposible conectarse: %s\n"mysqli_connect_error());
        exit();
    }
    
$consulta "SELECT nombre, apellido FROM cliente";
    if(
$sentencia $mysqli->prepare($consulta)){
        
$sentencia->execute();
        
$sentencia->bind_result($nombre$apellido);
        while (
$sentencia->fetch()){
            
printf ("%s (%s)\n"$nombre$apellido);
        }
        
$sentencia->close();
    }
    
$mysqli->close();

?>
ESPERO Y ME PUEDAN VOLVER AYUDAR Y NO SE ABURRAN DE MIS INAGOTABLES CONSULTAS Y PETICIONES DE AYUDA, DESDE YA MUCHAS GRACIAS =)
  #9 (permalink)  
Antiguo 30/10/2012, 20:30
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

tienes mal escrita la consulta

Código SQL:
Ver original
  1. SELECT nombren apellido FROM cliente

por

Código SQL:
Ver original
  1. SELECT nombre, apellido FROM cliente

Saludos
  #10 (permalink)  
Antiguo 30/10/2012, 20:35
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

rotten amigo si me alcance a dar cuenta de eso al minutos que postee pero sabes que al cambiarlo no causo ningún efecto sigue igualmente la pantalla en blanco como si no cargara el busquedaclie.php. espero me puedas dar otra idea y desde ya muchas gracias por darte tu tiempo en revisar el post =)
  #11 (permalink)  
Antiguo 30/10/2012, 20:54
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

no te sale un error, nada ? saludos
  #12 (permalink)  
Antiguo 30/10/2012, 20:55
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

no rotten no me sale nada y datos en la BD tengo, lo he intentado de varias formas pero nada saludos
  #13 (permalink)  
Antiguo 30/10/2012, 20:59
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

ROTTEN sabes que le coloque varios echo print y printf y no me mostro nada, que podría ser ? gracias desde ya
  #14 (permalink)  
Antiguo 30/10/2012, 21:02
Avatar de rottenp4nx  
Fecha de Ingreso: octubre-2012
Ubicación: Santiago
Mensajes: 417
Antigüedad: 11 años, 5 meses
Puntos: 36
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

Trata de hacerlo así, te darás cuenta donde puede estar el error

Código PHP:
<?php
    $mysqli 
= new mysqli('localhost','root','','midb');
    
$consulta "select titulo from contenido order by id_cont desc limit 5";
    if(!
$sentencia $mysqli->prepare($consulta))
        echo 
$mysqli->error;
    if(!
$sentencia->execute())
        echo 
$mysqli->error;
    if(!
$sentencia->bind_result($titulo))
        echo 
$mysqli->error;
    while(
$sentencia->fetch()){
    echo 
$titulo."<br>";
    }
    
$mysqli->close();
    
?>
Espero que te ayude el ejemplo, Saludos
  #15 (permalink)  
Antiguo 30/10/2012, 21:28
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR)

rotten amigo, te cuento mira intente lo tuyo y nada le borre mil cosas como ; $ y otras para que arrojara error,pero nada le coloque un codigo html para que me cambie el titulo de la pagina o para ver el codigo fuente, pero nada no habia codigo fuente, me intriga que pueda ser, espero tu gran ayuda y nuevamente muchas gracias saludos

Etiquetas: mysql, parse, sql, syntax, unexpected
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 22:17.