如何将带有撇号的动态文本数据插入到sql中

时间:2016-01-12 04:47:34

标签: php mysql

我有一个文本字段供用户输入他们对产品的描述。用户可以输入数据有撇号。那我怎么能把这些数据插入sql。

3 个答案:

答案 0 :(得分:1)

当用户输入关于产品的描述时,您可以通过" id或" name"来获得该值。并存储在变量中,例如

$productDescription = $_POST['product'];
$query="INSERT INTO XYZ VALUES($productDescription);

IN SQL COLUMN DataType必须是varchar

答案 1 :(得分:1)

要允许撇号,您可能必须在插入数据库时​​使用mysql_real_escape_string()或addslashes。在互联网上阅读有关这些功能的更多信息 这些函数在将数据放入数据库之前清理数据。 阅读this

答案 2 :(得分:-1)

预准备语句将以安全的方式绑定值,以允许将带有撇号的值插入到表中。它也是防止SQL注入的方法。

以下是使用PHP的PDO库实现此目的的最简单方法示例:

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
} 
$prep = $dbh->prepare('INSERT INTO item(title, link) VALUES(?, ?)');
$prep->execute( array($title, $link) );

在此处阅读更多内容:http://php.net/manual/en/pdo.prepare.php

  

PDO :: prepare - 准备一个执行语句并返回一个语句对象

     

SQL语句可以包含零个或多个命名(:name)或问号(?)参数标记,在执行语句时将替换实际值