返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >在 PHP 中将特殊字符插入数据库
  • 668
分享到

在 PHP 中将特殊字符插入数据库

2024-02-27 20:02:07 668人浏览 安东尼
摘要

本文将介绍 Mysqli_real_escape_string() 函数以在 PHP 中将特殊字符插入数据库。我们将比较使用和不使用 mysqli_real_escape_string() 函数的插入数

本文将介绍 Mysqli_real_escape_string() 函数以在 PHP 中将特殊字符插入数据库。我们将比较使用和不使用 mysqli_real_escape_string() 函数的插入数据。


创建 html 表单并设置数据库连接以收集数据

首先,必须创建一个 HTML 表单供用户输入数据,并且必须设置一个数据库连接来发送命令和接收输入。

以下是我们将在本教程中使用的代码。

HTML 代码:


<!DOCTYPE html>
<head>
    <title>
        Real Escape Strings
    </title>
</head>
<body>
    <fORM action = 'login.php' method = 'post' >
        <div align="ccenter">
            <label for="username"><b>User Name</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
            <input type="text" placeholder="Your Name" name="username" required>
            </br>
            <label for="passWord"><b>User Password</b></label>
            <input type="password" placeholder="Your Password" name="userpassword" required>
            </br>
            <label for="userlocation"><b>User Location</b>&nbsp;</label>
            <input type="text" placeholder="Your Location" name="userlocation" required>
            </br>	</br>	</br>
            <input type="submit" name="1" value = "Insert without mysqli_real_escape_string " />
            </br>
            </br>
            <input type="submit" name="2" value = "Insert with mysqli_real_escape_string " />
        </div>
    </form>
</body>
</html>

数据库连接代码:


<?php
error_reporting(0);
define("server", "localhost");
define("user", "root");
define("password", "");
define("database", "demo");
$mysqli = mysqli_connect(server , user, password, database);
if ($mysqli -> connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
exit();
}
//db connection code ends
?>

我们获得以下基础知识:

  • 表单输入字段
  • 数据库名称:demo
  • 表名:user_login

在 PHP 中使用 mysqli_real_escape_string() 将特殊字符插入数据库

要从表单字段中获取带有特殊字符的用户输入,我们使用 mysqli_real_escape_string() 函数。

我们需要以下参数:数据库连接和我们想要转义的字符串。我们的数据库连接是 $mysqli,我们要转义的字符串是 $_POST['username']

程序样式语法:


<?php
//Note: This is a demo syntax, you can run the next PHP code blocks for output
$username= $mysqli_real_escape_string($mysqli, $_POST['username']);
?>

例子:


<?php
//Second example: insert user data using mysqli real escape string
//ensure that users do not send empty data, see the following condition
if(isset($_POST['2']) && !empty($_POST['username']) && !empty ($_POST['userpassword']) && !empty ($_POST['userlocation']))
{
//You apply real_escape_string on $_POST[''] form fields (user input)
$username =  mysqli_real_escape_string($mysqli, $_POST['username']);
$userpassword = mysqli_real_escape_string($mysqli, $_POST['userpassword']);
$userlocation = mysqli_real_escape_string($mysqli, $_POST['userlocation']);
//same query (the values are dynamic, we escaped the strings)
$query="INSERT INTO user_login (username, userpassword, userlocation) VALUES ('$username', '$userpassword', '$userlocation')";

if (!mysqli_query($mysqli, $query)) {
    echo "Failed!";
}
else{
    //success
    echo "Data inserted";
}
//close connection
$mysqli -> close(); 
}// ends first condition

输出:

PHP:使用 mysqli_real_escape_string 插入数据

mysqli_real_escape_string() 函数消除了特殊字符,从而提高了数据库的安全性。

它会生成用于 SQL 查询的有效 SQL 表达式。另外,除了 prepared statements 之外,避免 SQL 注入也是一种比较安全的方法。

参考下面的另一个示例,它不使用 mysqli_real_escape_string() 函数。


<?php
//example-1: insert data without mysql real escape

if(isset($_POST['1'])){
    $username = $_POST['username'];
    $userpassword = $_POST['userpassword'];
    $userlocation= $_POST['userlocation'];
    $query="INSERT INTO user_login (username, userpassword, userlocation) VALUES
    ('$username', '$userpassword', '$userlocation')";
    if (!$mysqli -> query($query)){
        echo "Query failed to execute because of special characters!";
    }
    else{
	    echo "User Data Inserted!";
    }
    //first example ends here
}
?>

输出:

PHP:在没有 mysqli_real_escape_string 的情况下插入数据

如我们所见,由于用户输入中的特殊字符,它无法执行和收集数据。

--结束END--

本文标题: 在 PHP 中将特殊字符插入数据库

本文链接: https://lsjlt.com/news/569111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在 PHP 中将特殊字符插入数据库
    本文将介绍 mysqli_real_escape_string() 函数以在 PHP 中将特殊字符插入数据库。我们将比较使用和不使用 mysqli_real_escape_string() 函数的插入数...
    99+
    2024-02-27
  • MySQL怎么插入特殊字符
    本篇内容主要讲解“MySQL怎么插入特殊字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么插入特殊字符”吧!有时候在插入字符的时候,经常会发现&#...
    99+
    2024-04-02
  • php怎么插入含有特殊符号的数据
    本篇内容介绍了“php怎么插入含有特殊符号的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题:当我们...
    99+
    2024-04-02
  • Dreamweavr如何给网插入版权符号的特殊字符
    这篇文章将为大家详细讲解有关Dreamweavr如何给网插入版权符号的特殊字符,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Dreamweavr怎么插入特殊字符,现在好多网站里都有特殊字符,比如版权啊,编...
    99+
    2023-06-08
  • php中怎么将特殊字符转换为单引号
    本文小编为大家详细介绍“php中怎么将特殊字符转换为单引号”,内容详细,步骤清晰,细节处理妥当,希望这篇“php中怎么将特殊字符转换为单引号”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,需要了解 PHP 中...
    99+
    2023-07-05
  • php中如何转义特殊字符
    本篇内容主要讲解“php中如何转义特殊字符”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中如何转义特殊字符”吧!反斜线(\)在PHP中,反斜线()是用来转义特殊字符的最常见的字符。当我们需...
    99+
    2023-07-05
  • php字符串中怎么转义成特殊字符
    这篇文章主要介绍php字符串中怎么转义成特殊字符,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor...
    99+
    2023-06-14
  • PHP如何将特殊字符转换为HTML实体
    这篇文章将为大家详细讲解有关PHP如何将特殊字符转换为HTML实体,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP将特殊字符转换为HTML实体 PHP提供多种函数来将特殊字符转换为HTML实体。这样做...
    99+
    2024-04-02
  • PHP中的preg_quote()函数:如何将字符串中的特殊字符转义为正则表达式字符
    PHP中的preg_quote()函数:如何将字符串中的特殊字符转义为正则表达式字符,需要具体代码示例在开发中,我们经常会使用到正则表达式来匹配和处理字符串。然而,有些字符串中可能含有一些特殊字符,比如正则表达式中的元字符,它们具有特殊的意...
    99+
    2023-11-04
    字符串 转义 preg_quote
  • 数据库查询中遭遇特殊字符的解决方法
    本篇内容介绍了“数据库查询中遭遇特殊字符的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • 浅析php中如何将特殊字符转换为单引号
    在 PHP 的编程中,很多时候需要对字符串中的特殊字符进行转义才能正常输出。特别是单引号在字符串处理中使用的很频繁,但它也是一种特殊字符,如果字符串中含有单引号,会导致语法错误。那么,如何在 PHP 中将特殊字符转换为单引号呢?首先,需要了...
    99+
    2023-05-14
    php
  • 如何在Shell中使用特殊字符
    这期内容当中小编将会给大家带来有关如何在Shell中使用特殊字符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、;分号连续运行命令# ifdown eth0;ifup et...
    99+
    2023-06-09
  • php转义特殊字符函数是什么
    本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑php中的转义特殊字符函数1、addslashesaddslashes对SQL语句中的特殊字符进行转义操作,包括(‘), (“), (), (NUL)四个字符,此函数在...
    99+
    2020-02-20
    php 转义字符
  • php转义特殊字符函数有哪些
    这篇文章主要介绍“php转义特殊字符函数有哪些”,在日常操作中,相信很多人在php转义特殊字符函数有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php转义特殊字符函数有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • Ajax怎么传递特殊字符的数据
    这篇文章主要介绍了Ajax怎么传递特殊字符的数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题描述如下,对含有特殊字符的text进行JS...
    99+
    2024-04-02
  • ubuntu在vi中如何输入特殊符号
    ubuntu在vi中输入特殊符号的方法:在命令行上启动vi,并假设要编辑的文件名为demo.txt,命令:#vi demo.txt进入vi之后,按“i”键进入插入模式。同时按住CTRL键和V键,会在屏幕最下方的提示栏中显示^V标记...
    99+
    2024-04-02
  • 将数据库行读入映射字符串
    php小编小新将数据库行读入映射字符串是一种常见的数据处理技术。通过将数据库表的行数据读取并映射到字符串中,可以方便地进行数据操作和处理。这种技术在Web开发中经常用于将数据库查询结果...
    99+
    2024-02-09
    键值对
  • python:过滤字符串中的字母数字特殊
    今天遇到的字符串处理的问题,记录一下方便使用   1 str1 = input('请输入一个字符:') 2 #初始化字符、数字、空格、特殊字符的计数 3 lowercase = 0 4 uppercase = 0 5 nu...
    99+
    2023-01-30
    字符串 字母 数字
  • Matlab中怎么输入希腊字母等特殊字符
    在MATLAB中,可以使用以下方法输入希腊字母和其他特殊字符: 使用转义序列:在字符前加上反斜杠(\)作为转义字符,然后输入特殊...
    99+
    2023-10-23
    Matlab
  • 怎么解决mysql表中字段插入含有特殊符号的内容
    这篇文章主要介绍“怎么解决mysql表中字段插入含有特殊符号的内容”,在日常操作中,相信很多人在怎么解决mysql表中字段插入含有特殊符号的内容问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作