PHP Portal » PHP Handbuch » maxdb_real_escape_string

Werbung

maxdb_real_escape_string


(PECL maxdb >= 1.0)

maxdb_real_escape_string -- maxdb->real_escape_stringEscapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Beschreibung

Procedural style:

string maxdb_real_escape_string ( resource $link , string $escapestr )

Object oriented style (method):

maxdb
string real_escape_sring ( string $escapestr )

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are ', ".

Rückgabewerte

Returns an escaped string.

Beispiele

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB"); /* check connection */ if (maxdb_connect_errno()) { printf("Connect failed: %s\n", maxdb_connect_error()); exit(); } $maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city"); $city = "'s Hertogenbosch"; /* this query will fail, cause we didn't escape $city */ if (!$maxdb->query("INSERT into temp.mycity VALUES('11111','$city','NY')")) { printf("Error: %s\n", $maxdb->sqlstate); } $city = $maxdb->real_escape_string($city); /* this query with escaped $city will work */ if ($maxdb->query("INSERT into temp.mycity VALUES('22222','$city','NY')")) { printf("%d Row inserted.\n", $maxdb->affected_rows); } $maxdb->close();

PHP Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB"); /* check connection */ if (maxdb_connect_errno()) { printf("Connect failed: %s\n", maxdb_connect_error()); exit(); } maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city"); $city = "'s Hertogenbosch"; /* this query will fail, cause we didn't escape $city */ if (!maxdb_query($link, "INSERT into temp.mycity VALUES('11111','$city','NY')")) { printf("Error: %s\n", maxdb_sqlstate($link)); } $city = maxdb_real_escape_string($link, $city); /* this query with escaped $city will work */ if (maxdb_query($link, "INSERT into temp.mycity VALUES('22222','$city','NY')")) { printf("%d Row inserted.\n", maxdb_affected_rows($link)); } maxdb_close($link);

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Error: 42000
1 Row inserted.

Siehe auch