Foros del Web » Programando para Internet » PHP »

PHP OO Problema en servidor You have an error in your SQL syntax; check the manual that corr

Estas en el tema de Problema en servidor You have an error in your SQL syntax; check the manual that corr en el foro de PHP en Foros del Web. Hola a todos! Vengo trabajando hace meses en una tienda online, les comento que no soy ningun experto sino que todo lo que vengo haciendo ...
  #1 (permalink)  
Antiguo 05/11/2014, 19:53
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 4 años, 9 meses
Puntos: 0
Problema en servidor You have an error in your SQL syntax; check the manual that corr

Hola a todos!

Vengo trabajando hace meses en una tienda online, les comento que no soy ningun experto sino que todo lo que vengo haciendo es aprendiendo y averiguando.

El problema que tengo es el siguiente, tengo un script php armado para poder enviar los emails a los clientes, el email esta' compuesto por una funcion en html y por algunas variables las cuales traen a su vez algunas funciones para obtener los datos del cliente de la base de datos.

Les paso a mostrar:

<?php

$contenido = "Hola "
. ObtenerNombreService($row_datos_service['idOrden']) .
"<br><br>Te informamos que tu dispositivo presenta las siguientes fallas: <br><br>-"

. ObtenerNombreFalla($row_datos_service['idOrden']) .
"<br><br>-"
. ObtenerNombreFalla2($row_datos_service['idOrden']) .
"<br><br>Accediendo a la reparacion como atencion de nuestra empresa podes acceder a "
. ObtenerPromocion($row_datos_service['idOrden']) .
" a solo $"
. ObtenerPrecioOficial($row_datos_service['idOrden']) .
". Precio Oficial $"
. ObtenerDescuento($row_datos_service['idOrden']) .

"<br><br>Te informamos que el valor real de tu dispositivo nuevo liberado es de $"
. ObtenerPrecioCelu($row_datos_service['idOrden']) .

"<br><br>Por favor ingresa a nuestra web www.blackberrysoporte.com sección Servicio Tecnico y chequea el presupuesto de reparación de tu dispositivo.

Todos los services poseen 60 dias de garantía y se realizan con repuestos únicamente Originales. Recorda' que podes abonar también con MercadoPago hasta en 12 cuotas sin interés."

;

$contenido .= '</body>
</html>';

$asunto = 'Compra realizada en tiendazapatos.com';
EnvioPresupuestoHTML(ObtenerEmailService($_SESSION['MM_IdUsuario']), $contenido, $asunto)
?>

//********************************************
El email en funciones esta' compuesto de la siguiente manera:

function EnvioPresupuestoHTML($destinatario, $contenido, $asunto)
{

$mensaje = '<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>

<body>
<table width="100%" border="0" cellspacing="3" cellpadding="3">
<tr>
<td><img src="images/presupuesto.png" width="" height="200" /></td>
</tr>
<tr>
<td><p>Estimado Cliente:</p>
<p>';
$mensaje.= $contenido;
$mensaje.='</p></td>
<tr>
<td><img src="images/mercadolibre.png" width="" height="120" longdesc="http://www.mercadopago.com/mla/credit_card_promos.htm" /></td>
</tr>

</tr>
<tr>
<td>
Un Saludo<br>
Natalia Laz<br><br>

<strong>SSP - Service Smartphone Premium<br>
___________________________________<br>
Sucursal Belgrano <br>
Jose Hernandez 2731 - Capital Federal <br>
Tel: 4896-0319 <br>
Web: www.blackberrysoporte.com</strong><br><br>

<img src="images/facebook_silver.png" width="32" height="32" longdesc="http://www.facebook.com/blackberrystoreoficial" />
<img src="images/twitter_silver.png" width="32" height="32" longdesc="http://www.twitter.com/blackberry_bsas" />
<img src="images/googleplus_silver.png" width="32" height="32" longdesc="http://plus.google.com/u/0/b/118314720736132833100/dashboard/overview" />
</a></td>
</tr>
</table>
</body>
</html>';

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . "\n";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
// Cabeceras adicionales
$cabeceras .= 'From: [email protected]' . "\n";
$cabeceras .= 'Bcc: [email protected]' . "\n";

// Enviarlo
mail($destinatario, $asunto, $mensaje, $cabeceras);
echo $mensaje;

}
//******************************************


Ahora bien en el servidor local, wampserver, funciona perfectamente, ahora cuando lo paso online me aparece el 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...Que puede estar fallando? Por favor necesito vuestra ayuda ya que busque y busque pero estoy perdido realmente...Muchas gracias anticipadamente.
  #2 (permalink)  
Antiguo 05/11/2014, 20:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 8 meses
Puntos: 2653
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

El error no está en ninguna parte de todo lo que posteaste. Está en donde creas una consulta a la base de datos, parte que no has puesto.
La query se debe crear con algún error, pero sin ver ese código no es posible decir donde falla.

Postea lo que no pusiste.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/11/2014, 23:35
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 4 años, 9 meses
Puntos: 0
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

Hola amigo! Muchas gracias por respoder!

Te paso la consulta a la base de datos, como comentaba cuando hago pruebas en el servidor local no presenta fallas:

f (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_conexioncel, $conexioncel);
$query_datos_service = "SELECT * FROM tblsoportetecnico";
$datos_service = mysql_query($query_datos_service, $conexioncel) or die(mysql_error());
$row_datos_service = mysql_fetch_assoc($datos_service);
$totalRows_datos_service = mysql_num_rows($datos_service);
?>


Muchas gracias!
  #4 (permalink)  
Antiguo 06/11/2014, 03:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 8 meses
Puntos: 2653
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

Sigue sin aparecer la parte donde construyes la query...

Esto:
Código SQL:
Ver original
  1. SELECT * FROM tblsoportetecnico
no puede generarte ese error, por lo que debe haber otra parte donde estés construyendo la consulta dinámicamente, es decir en tiempo de ejecución. Y no es en este script.

Por cierto, por favor, usa los Highlight que tienes en el combo para resaltar el código. Facilita entender y ver los problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 06/11/2014, 05:18
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 4 años, 9 meses
Puntos: 0
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

Hola nuevamente! Te paso lo que pude encontrar

Código HTML:
$varOrden_datos_service = "0";
if (isset($_GET["recordID"])) {
  $varOrden_datos_service = $_GET["recordID"];
}
mysql_select_db($database_conexioncel, $conexioncel);
$query_datos_service = sprintf("SELECT * FROM tblsoportetecnico WHERE tblsoportetecnico.idOrden = %s", GetSQLValueString($varOrden_datos_service, "int"));
$datos_service = mysql_query($query_datos_service, $conexioncel) or die(mysql_error());
$row_datos_service = mysql_fetch_assoc($datos_service);
$totalRows_datos_service = mysql_num_rows($datos_service);
Bueno esta es otra de las consultas...pero realmente no encuentro error! que opinas? muchas gracias
  #6 (permalink)  
Antiguo 06/11/2014, 05:24
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 8 meses
Puntos: 2653
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

Bueno, es probable que el problema se produzca alli, por lo que sería mejor primero asegurarnos de cómo queda armado el SQL.
Escibe ese segmento así, y posteanos la query que te mostrará en pantalla. de ese modo podremos saber qué es lo que realmente está recibiendo MySQL. Aunque yo ya tengo ciertas sospechas...

Usa para la prueba los mismso datos que te fallan en el host.

Código PHP:
Ver original
  1. $varOrden_datos_service = "0";
  2. if (isset($_GET["recordID"])) {
  3.   $varOrden_datos_service = $_GET["recordID"];
  4. }
  5. mysql_select_db($database_conexioncel, $conexioncel);
  6. $query_datos_service = sprintf("SELECT * FROM tblsoportetecnico WHERE tblsoportetecnico.idOrden = %s", GetSQLValueString($varOrden_datos_service, "int"));
  7.  
  8. // Verificar lo que se crea
  9.  
  10. echo $query_datos_service
  11.  
  12. // -----------------------------------
  13. $datos_service = mysql_query($query_datos_service, $conexioncel) or die(mysql_error()."  ".$query_datos_service);
  14. $row_datos_service = mysql_fetch_assoc($datos_service);
  15. $totalRows_datos_service = mysql_num_rows($datos_service);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 10/11/2014, 13:30
 
Fecha de Ingreso: noviembre-2014
Mensajes: 4
Antigüedad: 4 años, 9 meses
Puntos: 0
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

Hol gnsoloyo! Disculpa la demora...lo que me da como resultado es lo siguiente:

Parse error: syntax error, unexpected '$datos_service' (T_VARIABLE), expecting ',' or ';' in C:\wamp\www\Calulares\admin\presu_eviado.php on line 60

Un abrazo
  #8 (permalink)  
Antiguo 10/11/2014, 13:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 8 meses
Puntos: 2653
Respuesta: Problema en servidor You have an error in your SQL syntax; check the manua

Dudo que hayas hecho lo que te dije... porque lo que se supone que debía aparecer en pantalla era el contenido de la variable "$query_datos_service", antes de llegar a la linea donde usas " $datos_service"...

Es decir, en pantalla debía mostrarse este texto:
Cita:
SELECT * FROM tblsoportetecnico WHERE tblsoportetecnico.idOrden =
seguido de un número de idOrden.

Nada de eso está apareciendo.

¿Estás seguro que escribiste lo que te puse?

¿Podrías postear ese bloque completo, tal y como lo tienes tu? Y NO, no es relevante que me digas que hiciste lo que dije. Copialo y pégalo.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: html, manual, mysql, servidor, sql, syntax, variable
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:48.