Php/func mysqli real escape string

来自菜鸟教程
跳转至:导航、​搜索

PHP mysqli real_escape_string()函数

MySQL PHP MySQLi参考

示例-面向对象的样式

转义字符串中的特殊字符:

<?php

$mysqli = new mysqli("localhost","my_user","my_password","my_db");


if ($mysqli -> connect_errno) {

  echo "Failed to connect to MySQL: " . 
  $mysqli -> connect_error;
  
  exit();

  }

// Escape special characters, if any
$firstname = $mysqli -> real_escape_string($_POST['firstname']);

 $lastname = $mysqli -> real_escape_string($_POST['lastname']);
$age = 
  $mysqli -> real_escape_string($_POST['age']);

$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";


if (!$mysqli -> query($sql)) {
  printf("%d Row inserted.\n", $mysqli->affected_rows);
}


$mysqli -> close();
?>



在底部查看程序样式的示例。

定义和用法

考虑到连接的当前字符集,real_escape_string()/ mysqli_real_escape_string()函数转义字符串中的特殊字符以用于SQL查询。

此函数用于创建可在SQL语句中使用的合法SQL字符串。假设我们有以下代码:

<?php


 $lastname = "D'Ore";

$sql="INSERT INTO Persons (LastName) VALUES ('$lastname')";


// This query will fail, cause we didn't escape $lastname
if (!$mysqli -> query($sql)) {
  printf("%d Row inserted.\n", $mysqli->affected_rows);
}


?>

句法

面向对象的样式:

$mysqli -> 
  real_escape_string(escapestring)

程序风格:

mysqli_real_escape_string(connection, escapestring)

参数值

参数 描述
connection 需要。指定要使用的MySQL连接
escapestring 需要。要转义的字符串。编码的字符为NUL(ASCII 0),\ n,\ r,\,',“和Control-Z。

技术细节

返回值: 返回转义的字符串
PHP版本: 5+

示例-程序风格

转义字符串中的特殊字符:

<?php

$con = mysqli_connect("localhost","my_user","my_password","my_db");


if (mysqli_connect_errno())
 {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  
  exit();

 }


  // Escape special characters, if any
$firstname = mysqli_real_escape_string($con, $_POST['firstname']);

 $lastname = mysqli_real_escape_string($con, $_POST['lastname']);
$age = mysqli_real_escape_string($con, $_POST['age']);

$sql="INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$firstname', '$lastname', '$age')";

if (!mysqli_query($con, $sql))
 {
  printf("%d Row inserted.\n", mysqli_affected_rows($con));
}

mysqli_close($con);

?>

MySQL PHP MySQLi参考