PHP mysql_real_escape_string() function

Definition and Usage

Fannin mysql_real_escape_string() yana tattara karfin dabbobi na ɗaukar dabbobi wanda ke amfani da SQL statement.

Kwayoyin na:

  • \x00
  • \n
  • \r
  • \
  • '
  • "
  • \x1a

Idan a samar da, fannin na wannan yana samar da ɗaukar dabbobi. Idan ba'a samar da, za'a samar da false.

Syntax

mysql_real_escape_string(string,connection)
Parameter Description
string Mallamaki. Sheba ɗaukar da yau ake ɗauka. Idan ba'a sheba, za'a amfani da kiyasawar na karshe.
connection Optional. Sheba MySQL kiyasawa. Idan ba'a sheba, za'a amfani da kiyasawar na karshe.

Kira

Fannin na wannan yana: string tariya karfin dabbobin dabbobi, kuma yana gudanar da amfani da kiyasawa na ɗaukar ɗaukar, yana samar da amfani don: mysql_query().

Tuntuba da Kwayoyin

Tuntuba:An fi amfani da fannin na wannan don kiwari girmama database.

Shiyya

Amfani 1

<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
// Code don gudanar da suna ɗaya da ɗaya da ɗaya
// Tattara suna ɗaya da ɗaya da ɗaya, don amfani da SQL
$user = mysql_real_escape_string($user);
$pwd = mysql_real_escape_string($pwd);
$sql = "SELECT * FROM users WHERE
user='" . $user . "' AND password='" . $pwd . "'"
// More code
mysql_close($con);
?>

Amfani 2

Girmama database. Amfani da shi don gudanar da: waɗanda ake yi imanin ba'a fi imanin yi amfani da mysql_real_escape_string() function ba:

<?php
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
$sql = "SELECT * FROM users
WHERE user='{$_POST['user']}'
AND password='{$_POST['pwd']}'";
mysql_query($sql);
// Ba'a baɗa ce ɗauka suna ɗaya da ɗaya
// Iya baɗa ce ko ake ɗauka, misali:
$_POST['user'] = 'john';
$_POST['pwd'] = "' OR ''='";
// Dabbobin code...
mysql_close($con);
?>

nadida SQL kira zaiwai ka na:

SELECT * FROM users
WHERE user='john' AND password='' OR ''=''

این بدان معناست که هر کاربری نیازی به ورود با رمز عبور معتبر ندارد تا وارد شود.

مثال 3

روش صحیح پیشگیری از حملات پایگاه داده:

<?php
function check_input($value)
{
// برچسبهای مایل به عقب را حذف کنید
if (get_magic_quotes_gpc())
  {
  $value = stripslashes($value);
  }
// اگر عدد نیست، قیدها را اضافه کنید
if (!is_numeric($value))
  {
  $value = "'" . mysql_real_escape_string($value) . "'";
  }
return $value;
}
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
// انجام SQL امن
$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = "SELECT * FROM users WHERE
user=$user AND password=$pwd";
mysql_query($sql);
mysql_close($con);
?>