MySQL不允许我插入包含单引号的值(')

时间:2012-08-16 01:40:02

标签: php mysql

我有一个文本区输入,我正在尝试发送到我的数据库

“istanbul'unkanayanayrasıolalanulaşım,özellikleanadoluyakasındankartal'dankadıköy'uelaşımınneredeyse2saatevarmasıyüzündenperişan。devletindepolitikalarıaikikar.17'austosgünüverilensöztutulurmu merak ediyoruz。”

文本。

它转到>

$bahisaciklamax = $_POST["bahisaciklama"];
$bbb=str_replace("\r\n", "<br />", $bahisaciklamax);
$bahisaciklama=strtolower(strip_tags($bbb, '<br><br /><br/><br />'));

并提供此错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'un kanayan yarası olan ulaşım, özellikle anadolu yakasından kartal'dan kadıköy'e' at line 1

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您的代码容易出现 SQL Injection 。使用 PDO MYSQLI

使用PDO扩展的示例:

<?php

    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    $stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
    $stmt->bindParam(1, $name);
    $stmt->bindParam(2, $value);

    // insert one row
    $name = 'one';
    $value = 1;
    $stmt->execute();

?>

这将允许您插入带单引号的记录。