2016-12-27 140 views
0

我想通過php腳本在mysql數據庫中存儲一些數據。我試圖存儲的數據是加密的,所以這意味着它存儲了這樣的事情:如何格式化數據,以便它可以存儲在mysql數據庫

'$ñŠN4Åßv4ñ•ÜÅصÙÜqÚö4Þ§ƒÑìèêù¬a+µºeN¶†)‰ož¥´™³¯BâPqt‡š3ÊØyGyŠí!¬‚ƒý`,È-SFn­…,˜EïÕ¬_¯ ÛÆ1y©aœ«#˜¼öe÷·2,¢‹éUËx‰0ý`ΪÄÅŒ1²ljìí -{6「6{Êܤ^3ùˆ-G¹' 

然而,當我試圖建立我的查詢,我得到連接到數據庫,這些加密值的誤差有時會有引號('或')和逗號意味着查詢被錯誤解釋。

有沒有一種方法可以忽略此數據中的逗號和引號,以便我的查詢得到正確解釋,上面的一個可以存儲嗎?

很多謝謝。

+2

的基礎知識有關使用SQL查詢每出臺有關「逃跑」解釋。再看看... – arkascha

+4

使用準備好的語句,那麼數據中的引號就沒有問題 –

回答

1

你可以簡單地做一個mysql轉義,它轉義字符串中的特殊字符以便在SQL語句中使用。

如..

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

$encrypted = mysqli_real_escape_string($con, $encryptedText); 

$sql="INSERT INTO table (columnName) VALUES ($encrypted)"; 

mysqli_query($con,$sql); 

?> 
0

我在想,如果這是你的數據的外觀(當我只是把明文沒有加密的數據我查詢的工作),你可以宣佈你的表的列的數據類型是一個blob然後如果你正在使用PHP,您可以使用pdo函數在MySQL數據庫中執行CRUD。我希望這有幫助。

0

使用準備好的語句是在我看來最好的一段路要走,但你應該瞭解逃避過,這是你應該知道的。

預處理語句很容易,基本上

SELECT something FROM somewhere WHERE this = :that 

bind('that', $val) 

你應該看看PDO,這將有助於https://phpdelusions.net/pdo

相關問題