MySQL Command Line
Se si utilizza la riga di comando di MySQL strumento l'output dato ti permetterà di differenziare i due scenari.
Se la voce non esiste:
+---------------+---------+
| user_id | faculty |
+---------------+---------+
| 80 | abc |
+---------------+---------+
mysql> UPDATE `undergraduate` set `faculty` = 'Efac' WHERE `user_id` = '86';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
Se la voce non esiste, ma non viene aggiornato:
+---------------+---------+
| user_id | faculty |
+---------------+---------+
| 80 | abc |
| 86 | Efac |
+---------------+---------+
mysql> UPDATE `undergraduate` set `faculty` = 'Efac' WHERE `user_id` = '86';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
Se la voce esiste, e viene aggiornato:
+---------------+---------+
| user_id | faculty |
+---------------+---------+
| 80 | abc |
| 86 | bcd |
+---------------+---------+
mysql> UPDATE `undergraduate` set `faculty` = 'Efac' WHERE `user_id` = '86';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
PHP - DOP
PDO purtroppo non fornisce un meccanismo per far corrispondere entrambe le righe alle righe e per una query, ma è possibile scegliere quale si desidera. Il default è di restituire il numero di righe cambiato, ma l'opzione può essere specificato sulla connessione per restituire il numero di righe corrispondenti invece:
$db = new PDO('mysql:dbname=database;host=host', 'username', 'password', array(
PDO::MYSQL_ATTR_FOUND_ROWS => true
));
PHP - MySQLi
Le funzioni MySQLi può fare lo stesso come DOP in termini di scelta tra abbinati e aggiornati:
$db = mysqli_init();
$db->real_connect('host', 'username', 'password', 'database', '3306', null, MYSQLI_CLIENT_FOUND_ROWS);
Ma si può anche chiamare la funzione mysqli_info()
/$db->info()
(vedi http://php.net/manual/en/mysqli.info.php) e restituirà una stringa con le righe abbinate/aggiornati che è quindi possibile analizzare:
Records: 3 Duplicates: 0 Warnings: 0
Scusa se ho dimenticato di menzionare che uso PHP non lo strumento da riga di comando, la domanda è stata aggiornata – Alupotha
@ Tech-Sira Ho aggiornato la mia risposta con i dettagli su come ottenere queste informazioni in PHP. – Eborbob
Grazie, questo è quello che mi aspettavo risposta! – Alupotha