-1

何らかの理由で、このコードがデータベースに挿入されません。数日前までは機能していました。今は何もない。なぜそれが機能しないのかについて誰か考えがありますか? エラーが発生しているだけです。

$con=mysqli_connect($host,$username,$password,$dbname) or die('Error->' .mysqli_error($con));

function quote2entities($string,$entities_type='number')
{
    $search                     = array("\"","'");
    $replace_by_entities_name   = array(""","'");
    $replace_by_entities_number = array(""","'");
    $do = null;
    if ($entities_type == 'number')
    {
        $do = str_replace($search,$replace_by_entities_number,$string);
    }
    else if ($entities_type == 'name')
    {
        $do = str_replace($search,$replace_by_entities_name,$string);
    }
    else
    {
        $do = addslashes($string);
    }
    return $do;
}
echo mysqli_error($con);

$c = quote2entities($_POST['company']);
$mem = quote2entities($mem);
$cp = quote2entities($cp);
$vcc = quote2entities($vcc);
$addy = quote2entities($addy);
$contact = quote2entities($contact);
$date = quote2entities($date);
$type = quote2entities($type);


echo $c ;
echo $contact;
echo $vcc;
$query = "INSERT INTO project (company) VALUES (".$c.")";
mysqli_query($con, $query);
mysqli_close($con);
4

2 に答える 2

1

このコードは絶対に使用しないでください。
少しも意味がありません: 何らかの理由で、データベースを扱うときにHTMLエンコーディングを使用しています。これは明らかに間違っています。値をクエリに補間する代わりに、準備されたステートメントを使用する必要があることは言うまでもありません。

現在のアプローチをやめて、ここで正しい方法を学んでください: PHP で SQL インジェクションを防ぐにはどうすればよいですか?

于 2013-10-20T08:38:13.500 に答える