Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体

0
votes
answers
楼主
19 views
+10

如何在轉義後將原始字符串保存到MYSQL中?

-1

實施例:如何在轉義後將原始字符串保存到MYSQL中?

<?php 
$uid = 'Pat/r'ick'; 
$string = mysql_escape_string($uid); 

$query = 'INSERT INTO user (uid) VALUES ($string)'; 

?> 

轉義字符串,MySQL的插入值之後 '專利// R /' ICK」到表中。我的理解是mysql_escape_string只是爲了轉義字符串,以便查詢可以運行沒有任何問題,然後仍然應該能夠保存逃逸後的字符串的原始值。在這種情況下,我期望Mysql將「Pat/r'ick」值保存到表中。

有人可以幫助我如何保存原始字符串轉義查詢後的字符串?

+1

停止使用'mysql'。移動到PDO或mysqli –

+0

如果你想保存原始字符串,那麼你爲什麼逃脫。只需將該值放入變量並將該var傳遞給查詢即可。 – Rits

+0

@Rits變量不會被插入,因爲它包含單引號。正如你所看到的,我使用php來聲明變量並將其傳遞給mysql查詢。 – EDDY

沙发
0
1

也許你已經啓用了魔術引號並且該字符串是雙引號。所以,關閉php.ini中的魔術引號。

http://php.net/manual/en/security.magicquotes.php

+0

從5.3版本開始,PHP一直不支持Magic Quotes,自2014年以來,該版本不受支持(即使是安全更新)。不要關閉魔術引號:**升級到支持的PHP版本**。 – Quentin

+0

問題中的代碼顯示輸入來自硬編碼字符串,因此它不會通過魔術引號引擎(它不是來自腳本外部),所以這不能作爲答案...除了那裏對於OP中的代碼來說,很明顯是使用了一個未經測試的過分簡化的示例,並且可能是在說謊而不是使用外部輸入......並且他們沒有展示他們如何檢查數據,因此可能會添加轉義當他們從數據庫中提取數據時。也許。這個問題很糟糕。 – Quentin

discard