Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/07/2014, 07:38
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: mysql devuelve un true duda

Manual de referencia...

Primero: La función PHP no debe contener una sentencia SQL porque MySQL no entiende PHP. En todo caso lo que tienes es una llamada a una librería (MYSQL o MYSQLI), la cual puede ser mysql_query() o mysqli_query(), según el caso.
En ambos casos, retorna un TRUE si la ejecución de la sentencia que la funcion de la librería envia a la base se ejecuta sin errores. Por consecuencia lo primero que debes validar es que devolvión TRUE o FALSE.
Pero además, existe una función denominada mysql_affected_rows() en una librería y mysqli_affected_rows() en la otra, que te devuelve la cantidad de registros insertados, actualizados o borrados (según el caso) de la setencia ejecutada por la llamada anterior.
Eso es lo que debes usar cuando vas a ejecutar una sentencia SQL del tipo INSERT, UPDATE o DELETE.

El manual de referencia tiene ejemplos que deberías seguir:

Librería MYSQL
Código PHP:
Ver original
  1. <?php
  2. $enlace = mysql_connect('localhost', 'usuario_mysql', 'contraseña_mysql');
  3. if (!$enlace) {
  4.     die('No se pudo conectar: ' . mysql_error());
  5. }
  6.  
  7. /* Esto debería devolver el número correcto de registros borrados */
  8. mysql_query('DELETE FROM mitabla WHERE id < 10');
  9. printf("Registros borrados: %d\n", mysql_affected_rows());
  10.  
  11. /* con una clausula WHERE que nunca es verdad, debería devolver 0 */
  12. mysql_query('DELETE FROM mitabla WHERE 0');
  13. printf("Registros borrados: %d\n", mysql_affected_rows());
  14. ?>

Librería MYSQLI:
Código PHP:
Ver original
  1. <?php
  2. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  3.  
  4. /* Comprueba la conexión */
  5.     printf("Connect failed: %s\n", mysqli_connect_error());
  6.     exit();
  7. }
  8.  
  9. /* Actualiza filas */
  10. $mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
  11. printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);
  12.  
  13. /* Elimina filas */
  14. $mysqli->query("DELETE FROM Language WHERE Percentage < 50");
  15. printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);
  16. $result->close();
  17.  
  18. /* Cierra la conexión */
  19. $mysqli->close();
  20. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)