我有一个文本字段供用户输入他们对产品的描述。用户可以输入数据有撇号。那我怎么能把这些数据插入sql。
答案 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)或问号(?)参数标记,在执行语句时将替换实际值