Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

mysql_escape_string(3) [php man page]

MYSQL_ESCAPE_STRING(3)							 1						    MYSQL_ESCAPE_STRING(3)

mysql_escape_string - Escapes a string for use in a mysql_query

SYNOPSIS
Warning This function was deprecated in PHP 4.3.0, and will be removed in the future, along with the entirety of the original MySQL exten- sion. 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_escape_string(3) o PDO::quote string mysql_escape_string (string $unescaped_string) DESCRIPTION
This function will escape the $unescaped_string, so that it is safe to place it in a mysql_query(3). This function is deprecated. This function is identical to mysql_real_escape_string(3) except that mysql_real_escape_string(3) takes a connection handler and escapes the string according to the current character set. mysql_escape_string(3) does not take a connection argument and does not respect the cur- rent charset setting. o $unescaped_string - The string that is to be escaped. Returns the escaped string. +--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.3.0 | | | | | | | This function now throws an E_DEPRECATED notice. | | | | | 4.3.0 | | | | | | | This function became deprecated, do not use this | | | function. Instead, use | | | mysql_real_escape_string(3). | | | | +--------+---------------------------------------------------+ Example #1 mysql_escape_string(3) example <?php $item = "Zak's Laptop"; $escaped_item = mysql_escape_string($item); printf("Escaped string: %s ", $escaped_item); ?> The above example will output: Escaped string: Zak's Laptop Note mysql_escape_string(3) does not escape % and _. mysql_real_escape_string(3), addslashes(3), The magic_quotes_gpc directive.. PHP Documentation Group MYSQL_ESCAPE_STRING(3)

Check Out this Related Man Page

MYSQL_REAL_ESCAPE_STRING(3)						 1					       MYSQL_REAL_ESCAPE_STRING(3)

mysql_real_escape_string - Escapes special characters in a string for use in an SQL statement

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_real_escape_string(3) o PDO::quote string mysql_real_escape_string (string $unescaped_string, [resource $link_identifier = NULL]) DESCRIPTION
Escapes special characters in the $unescaped_string, taking into account the current character set of the connection so that it is safe to place it in a mysql_query(3). If binary data is to be inserted, this function must be used. mysql_real_escape_string(3) calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following charac- ters: x00, , , , ', " and x1a. This function must always (with few exceptions) be used to make data safe before sending a query to MySQL. Caution Security: the default character set The character set must be set either at the server level, or with the API function mysql_set_charset(3) for it to affect mysql_real_escape_string(3). See the concepts section on character sets for more information. o $unescaped_string - The string that is to be escaped. 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 escaped string, or FALSE on error. Example #1 Simple mysql_real_escape_string(3) example <?php // Connect $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password') OR die(mysql_error()); // Query $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'", mysql_real_escape_string($user), mysql_real_escape_string($password)); ?> Example #2 An example SQL Injection Attack <?php // We didn't check $_POST['password'], it could be anything the user wanted! For example: $_POST['username'] = 'aidan'; $_POST['password'] = "' OR ''='"; // Query database to check if there are any matching users $query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'"; mysql_query($query); // This means the query sent to MySQL would be: echo $query; ?> The query sent to MySQL: SELECT * FROM users WHERE user='aidan' AND password='' OR ''='' This would allow anyone to log in without a valid password. Note A MySQL connection is required before using mysql_real_escape_string(3) otherwise an error of level E_WARNING is generated, and FALSE is returned. If $link_identifier isn't defined, the last MySQL connection is used. Note If magic_quotes_gpc is enabled, first apply stripslashes(3) to the data. Using this function on data which has already been escaped will escape the data twice. Note If this function is not used to escape data, the query is vulnerable to SQL Injection Attacks. Note mysql_real_escape_string(3) does not escape % and _. These are wildcards in MySQL if combined with LIKE, GRANT, or REVOKE. mysql_set_charset(3), mysql_client_encoding(3), addslashes(3), stripslashes(3), The magic_quotes_gpc directive, The magic_quotes_runtime directive. PHP Documentation Group MYSQL_REAL_ESCAPE_STRING(3)
Man Page