Table of Contents
The solution to two backslash escapes and database class escapes in ThinkPHP database, thinkphp slash
Why do some double quotes written to the database in Thinkphp be escaped and some not?
When storing special characters (such as single quotes) into the database, is it necessary to escape them with backslashes?
Home Backend Development PHP Tutorial Solution to the problem of two backslash escapes and database class escapes in ThinkPHP database, thinkphp slash_PHP tutorial

Solution to the problem of two backslash escapes and database class escapes in ThinkPHP database, thinkphp slash_PHP tutorial

Jul 13, 2016 am 10:15 AM
thinkphp apostrophe Solution

The solution to two backslash escapes and database class escapes in ThinkPHP database, thinkphp slash

The example in this article describes the solution to two backslash escapes and database class escapes when ThinkPHP is imported into the database. Share it with everyone for your reference. The specific method is as follows:

This happens when magic_quotes_gpc is turned on. The reason is that thinkphp did not determine whether magic_quotes_gpc was turned on when importing it into the database, and escaped it regardless.
The solution is to add the following code to the entry file:

Copy code The code is as follows:
if (!get_magic_quotes_gpc()) {
Function addslashes_deep($value) {
         $value = is_array($value) ?
              array_map('addslashes_deep', $value):
addslashes($value);
Return $value;
}  
$_POST = array_map('addslashes_deep', $_POST);
$_GET = array_map('addslashes_deep', $_GET);
$_COOKIE = array_map('addslashes_deep', $_COOKIE);
$_REQUEST = array_map('addslashes_deep', $_REQUEST);
}

Someone modified the escape function in DbMysql.class.php like this:

Copy code The code is as follows:
public function escape_string($str) {
if (get_magic_quotes_gpc()) {
return $str;
}
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID);
}else{
return mysql_escape_string($str);
}
}

In fact, this method is not advisable! Because if the magic function is on and $str is not obtained by post or get (such as reading text or database), it still does not add a backslash.
So regardless of whether $str has been escaped, I always remove the escape first and then add the escape. This avoids double escaping and missing escapes.
Here’s how I modified it:

Copy code The code is as follows:
public function escape_string($str) {
$str = stripslashes($str);
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID);
}else{
return mysql_escape_string($str);
}
}

I hope this article will be helpful to everyone’s ThinkPHP framework programming.

Why do some double quotes written to the database in Thinkphp be escaped and some not?

It has nothing to do with the database, it has to do with the PHP insert statement. Check the insert statement. Some of it must be changed and some may not be

When storing special characters (such as single quotes) into the database, is it necessary to escape them with backslashes?

If you don’t escape, you won’t be able to insert into it. An error will be reported

But single quotes are still disgusting, so you need to add an extra single quote to change the meaning

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/906108.htmlTechArticleSolution to two backslash escapes and database class escapes in ThinkPHP database, thinkphp slash article The example describes the solution to two backslash escapes and database class escapes in ThinkPHP database...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

What is the reason why PS keeps showing loading? What is the reason why PS keeps showing loading? Apr 06, 2025 pm 06:39 PM

PS "Loading" problems are caused by resource access or processing problems: hard disk reading speed is slow or bad: Use CrystalDiskInfo to check the hard disk health and replace the problematic hard disk. Insufficient memory: Upgrade memory to meet PS's needs for high-resolution images and complex layer processing. Graphics card drivers are outdated or corrupted: Update the drivers to optimize communication between the PS and the graphics card. File paths are too long or file names have special characters: use short paths and avoid special characters. PS's own problem: Reinstall or repair the PS installer.

What are the common questions about exporting PDF on PS What are the common questions about exporting PDF on PS Apr 06, 2025 pm 04:51 PM

Frequently Asked Questions and Solutions when Exporting PS as PDF: Font Embedding Problems: Check the "Font" option, select "Embed" or convert the font into a curve (path). Color deviation problem: convert the file into CMYK mode and adjust the color; directly exporting it with RGB requires psychological preparation for preview and color deviation. Resolution and file size issues: Choose resolution according to actual conditions, or use the compression option to optimize file size. Special effects issue: Merge (flatten) layers before exporting, or weigh the pros and cons.

How to select a child element with the first class name item through CSS? How to select a child element with the first class name item through CSS? Apr 05, 2025 pm 11:24 PM

When the number of elements is not fixed, how to select the first child element of the specified class name through CSS. When processing HTML structure, you often encounter different elements...

Unable to log in to mysql as root Unable to log in to mysql as root Apr 08, 2025 pm 04:54 PM

The main reasons why you cannot log in to MySQL as root are permission problems, configuration file errors, password inconsistent, socket file problems, or firewall interception. The solution includes: check whether the bind-address parameter in the configuration file is configured correctly. Check whether the root user permissions have been modified or deleted and reset. Verify that the password is accurate, including case and special characters. Check socket file permission settings and paths. Check that the firewall blocks connections to the MySQL server.

Why does negative margins not take effect in some cases? How to solve this problem? Why does negative margins not take effect in some cases? How to solve this problem? Apr 05, 2025 pm 10:18 PM

Why do negative margins not take effect in some cases? During programming, negative margins in CSS (negative...

How to use export default in Vue How to use export default in Vue Apr 07, 2025 pm 07:21 PM

Export default in Vue reveals: Default export, import the entire module at one time, without specifying a name. Components are converted into modules at compile time, and available modules are packaged through the build tool. It can be combined with named exports and export other content, such as constants or functions. Frequently asked questions include circular dependencies, path errors, and build errors, requiring careful examination of the code and import statements. Best practices include code segmentation, readability, and component reuse.

How to use locally installed font files on web pages? How to use locally installed font files on web pages? Apr 05, 2025 pm 10:57 PM

How to use locally installed font files on web pages Have you encountered this situation in web page development: you have installed a font on your computer...

How to solve the problem of loading when PS is started? How to solve the problem of loading when PS is started? Apr 06, 2025 pm 06:36 PM

A PS stuck on "Loading" when booting can be caused by various reasons: Disable corrupt or conflicting plugins. Delete or rename a corrupted configuration file. Close unnecessary programs or upgrade memory to avoid insufficient memory. Upgrade to a solid-state drive to speed up hard drive reading. Reinstalling PS to repair corrupt system files or installation package issues. View error information during the startup process of error log analysis.

See all articles