2011-05-31 13 views
5
 $result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'") 
or die(mysql_error()); 

Pero no actualiza. marcó $battle_get['username'] y el nombre de usuario está ahí. no estoy recibiendo ningún error ni nada simplemente no añadiendo ...consulta mysql no funciona ningún error ot

Cualquier ayuda sería muy agradable gracias de antemano

+3

¿Está utilizando un nombre de usuario en el campo de correo electrónico? Lo más probable es que el SQL no encuentre una fila con esa dirección de 'correo electrónico'. –

+0

se supone que el correo electrónico es un nombre de usuario, ¿verdad? ¿Viste que en realidad concuerda con algo? –

+0

Necesita PHP un punto y coma al final de la instrucción - 'UPDATE blah de blah WHERE email = 'thedata';' –

Respuesta

0

prueba Try

$email = $battle_get['username']; 
UPDATE users SET credit=credit+1 WHERE email= '$email' 
+0

Todavía nada no subió ... – nick

+0

PHP no tiene LINQ – David

+0

PHP no tiene LINQ ?? – nick

0

te olvidaste de la comisión de la consulta a la base de datos, tratar transacción

mysql_query("START TRANSACTION"); 
mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'"); 
mysql_query("COMMIT"); 
+0

las bases de datos conectan están en la parte superior de la página. Yo uso \t include_once ('config.php'); en cada página en la parte superior, otras secuencias de comandos sql funcionan con ella, por lo que se está conectando ... – nick

+0

¿quizás su configuración de mysql estableció el autocommit en 0, configúrelo en 1 – brian

+0

autocommit? Estoy haciendo selecciones e inserciones en mi sitio web en otras páginas ... simplemente actualización no funciona – nick

3

ver lo que el resultado de mysql_affected_rows() es:

if (! $result53543534 = mysql_query("UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'")) { 
    die(mysql_error()); 
} else { 
    echo "Number of rows affected: " . mysql_affected_rows() . "<br>"; 
} 

Puede que no tenga la sintaxis correcta pero espero que entienda la idea. Si el resultado es 0, no está especificando la sintaxis WHERE para que realmente se refiera a cualquier fila (s).

Si el resultado es mayor que 0, entonces se equivoca si cree que no está afectando ninguna fila. Puede no estar afectando las filas que crees que debería, pero ese es otro problema.

También, echo su instrucción SQL para que pueda ver exactamente lo que está haciendo.

+0

También, tome esa declaración sql con eco y ejecútela en el cliente de línea de comando o PHPMyAdmin para tener una mejor idea de lo que está pasando. – user151841

+0

obteniendo una página en blanco con ese código – nick

+0

Creo que he corregido los errores de sintaxis, inténtelo de nuevo. Si no, siempre puedes escribir tu propio código llamando a 'mysql_affected_rows()' :) – user151841

0

Sugeriría cambiar el código de la siguiente manera, le permitirá examinar la consulta sql. Intente probar la consulta sql para ver si se ejecuta en absoluto. Es posible que también desee ejecutar los usuarios DESCRIBE en su consola mysql para ver qué tipo de información obtiene.

$sql = "UPDATE users SET credit=credit+1 WHERE email= '{$battle_get['username']}'" 
echo $sql; 
if (! $result53543534 = mysql_query($sql)) { 
    die(mysql_error()); 
} else { 
    echo "Number of rows affected: " . mysql_affected_rows() . "<br>"; 
} 
0

Otorgue permiso de ACTUALIZACIÓN al usuario en la conexión que está utilizando para esto. El hecho de que el usuario pueda SELECCIONAR e INSERTAR, no significa que también pueda ACTUALIZARSE automáticamente, necesita otorgarles explícitamente el permiso para ACTUALIZAR. Y también mysql_error() no mostrará ningún error porque su declaración de SQL es correcta, por lo tanto, no se muestra ningún error.