Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mysql_insert_id(3) [php man page]

MYSQL_INSERT_ID(3)							 1							MYSQL_INSERT_ID(3)

mysql_insert_id - Get the ID generated in the last query

SYNOPSIS
Warning This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: omysqli_insert_id(3) o PDO::lastInsertId int mysql_insert_id ([resource $link_identifier = NULL]) DESCRIPTION
Retrieves the ID generated for an AUTO_INCREMENT column by the previous query (usually INSERT). o $ link_identifier -The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect(3) is assumed. If no such link is found, it will try to create one as if mysql_connect(3) was called with no arguments. If no connection is found or established, an E_WARNING level error is generated. The ID generated for an AUTO_INCREMENT column by the previous query on success, 0 if the previous query does not generate an AUTO_INCRE- MENT value, or FALSE if no MySQL connection was established. Example #1 mysql_insert_id(3) example <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } mysql_select_db('mydb'); mysql_query("INSERT INTO mytable (product) values ('kossu')"); printf("Last inserted record has id %d ", mysql_insert_id()); ?> Caution mysql_insert_id(3) will convert the return type of the native MySQL C API function mysql_insert_id() to a type of long (named int in PHP). If your AUTO_INCREMENT column has a column type of BIGINT (64 bits) the conversion may result in an incorrect value. Instead, use the internal MySQL SQL function LAST_INSERT_ID() in an SQL query. For more information about PHP's maximum integer values, please see the integer documentation. Note Because mysql_insert_id(3) acts on the last performed query, be sure to call mysql_insert_id(3) immediately after the query that generates the value. Note The value of the MySQL SQL function LAST_INSERT_ID() always contains the most recently generated AUTO_INCREMENT value, and is not reset between queries. mysql_query(3), mysql_info(3). PHP Documentation Group MYSQL_INSERT_ID(3)

Check Out this Related Man Page

MYSQL_AFFECTED_ROWS(3)							 1						    MYSQL_AFFECTED_ROWS(3)

mysql_affected_rows - Get number of affected rows in previous MySQL operation

SYNOPSIS
Warning This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: omysqli_affected_rows(3) o PDOStatement::rowCount int mysql_affected_rows ([resource $link_identifier = NULL]) DESCRIPTION
Get the number of affected rows by the last INSERT, UPDATE, REPLACE or DELETE query associated with $link_identifier. o $ link_identifier -The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect(3) is assumed. If no such link is found, it will try to create one as if mysql_connect(3) was called with no arguments. If no connection is found or established, an E_WARNING level error is generated. Returns the number of affected rows on success, and -1 if the last query failed. If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero with MySQL versions prior to 4.1.2. When using UPDATE, MySQL will not update columns where the new value is the same as the old value. This creates the possibility that mysql_affected_rows(3) may not actually equal the number of rows matched, only the number of rows that were literally affected by the query. The REPLACE statement first deletes the record with the same primary key and then inserts the new record. This function returns the number of deleted records plus the number of inserted records. In the case of "INSERT ... ON DUPLICATE KEY UPDATE" queries, the return value will be 1 if an insert was performed, or 2 for an update of an existing row. Example #1 mysql_affected_rows(3) example <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } mysql_select_db('mydb'); /* this should return the correct numbers of deleted records */ mysql_query('DELETE FROM mytable WHERE id < 10'); printf("Records deleted: %d ", mysql_affected_rows()); /* with a where clause that is never true, it should return 0 */ mysql_query('DELETE FROM mytable WHERE 0'); printf("Records deleted: %d ", mysql_affected_rows()); ?> The above example will output something similar to: Records deleted: 10 Records deleted: 0 Example #2 mysql_affected_rows(3) example using transactions <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } mysql_select_db('mydb'); /* Update records */ mysql_query("UPDATE mytable SET used=1 WHERE id < 10"); printf ("Updated records: %d ", mysql_affected_rows()); mysql_query("COMMIT"); ?> The above example will output something similar to: Updated Records: 10 Note Transactions If you are using transactions, you need to call mysql_affected_rows(3) after your INSERT, UPDATE, or DELETE query, not after the COMMIT. Note SELECT Statements To retrieve the number of rows returned by a SELECT, it is possible to use mysql_num_rows(3). Note Cascaded Foreign Keys mysql_affected_rows(3) does not count rows affected implicitly through the use of ON DELETE CASCADE and/or ON UPDATE CASCADE in for- eign key constraints. mysql_num_rows(3), mysql_info(3). PHP Documentation Group MYSQL_AFFECTED_ROWS(3)
Man Page