Foros del Web » Programando para Internet » PHP »

Error de sintaxis (se supone) de mysql en php

Estas en el tema de Error de sintaxis (se supone) de mysql en php en el foro de PHP en Foros del Web. Holas, soy nuevo en el foro y me registre solo porque tengo un problema que por mas que le doy vueltas no puedo resolver. Lo ...
  #1 (permalink)  
Antiguo 14/08/2007, 18:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 22
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Error de sintaxis (se supone) de mysql en php

Holas, soy nuevo en el foro y me registre solo porque tengo un problema que por mas que le doy vueltas no puedo resolver. Lo puse en este foro porque al final tiene que ver con Mysql y con php (Puede que sea error mio en la definicion de alguna variable, no se).

Al ejecutar el script que pongo mas abajo obtengo el siguiente error:

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

Fijaros que '' es un par de comillas simples y no una doble. Pero no encuentro donde esta el error, ojala alguien pueda ayudarme. Gracias.

Código PHP:
<?php

require_once("connect.php");
require_once(
"session.php");
if(!isset(
$_POST['upd']))
{
    
$query "update `online` set `last` = now() where `userid` = ".$_SESSION['loggedinid'];
    
mysql_query($query)
        or die(
mysql_error());
        
    
$tryupdate mysql_affected_rows();
    if(!
$tryupdate != 0)
    {
        
$query =     "insert into `online` (`username`,`userid`,`last`) 
                    values ('"
.mysql_escape_string($_SESSION['loggedin'])."',".$_SESSION['loggedinid'].",now())";
        
mysql_query($query)
            or die(
mysql_error());
    }
}

$query "select * from `online` where `last` > '".date("Y-m-d H:i:s"time() - 3)."' order by `username`";
$getnames mysql_query($query)
            or die(
mysql_error()); // get list of users who are online (within 30 seconds)
    
echo '<table><tr><td width="500">Who is online?</td></tr>';
while(
$person mysql_fetch_array($getnames))
{
    echo 
'<tr><td width="500">'.$person['username'].'</td></tr>';
}
echo 
'</table>';
    
if(isset(
$_POST['upd']))
{
    
$query "update `online` set `last` = now() where `userid` = ".$_POST['who'];
    
mysql_query($query)
        or die(
mysql_error());
}

?>

Última edición por HerrFelix; 14/08/2007 a las 20:26
  #2 (permalink)  
Antiguo 14/08/2007, 20:34
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: Error de sintaxis (se supone) de mysql en php

No se que contendra tu session.php pero me imagino que dentro de ahi tienes session_start(); si es asi eso tiene que ir al principio de todo de esta forma:

<?php
session_start();
y abajo todo tu codigo
  #3 (permalink)  
Antiguo 15/08/2007, 07:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error de sintaxis (se supone) de mysql en php

Tambien es bueno usar en lugar de or die algo asi:

Código PHP:
mysql_query$query ) or die( "Error en query: $query, error:" mysql_error() ); 
Asi puedes identificar exactamente en donde esta el error.

Saludos.
  #4 (permalink)  
Antiguo 15/08/2007, 09:27
 
Fecha de Ingreso: agosto-2007
Mensajes: 22
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Error de sintaxis (se supone) de mysql en php

Cita:
Iniciado por GatorV Ver Mensaje
Tambien es bueno usar en lugar de or die algo asi:

Código PHP:
mysql_query$query ) or die( "Error en query: $query, error:" mysql_error() ); 
Asi puedes identificar exactamente en donde esta el error.

Saludos.
Muchas gracias, no se me habia ocurrido, haciendo eso pude identificar donde estaba exactamente el error y lo solucione.
Gracias a ginitofl tambien ya que gracias a lo que respondio aprendi algunas cosas mas navegando por ahi.

Saludos!
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 18:42.