2016-12-27 141 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

相关问题