-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 回答
1

更改VALUES (".$c.")VALUES ('".$c."')

变量需要用单引号括起来。

您也可以使用单引号('$c')('.$c.')其他选项。

这些我已经知道了,但是您可以参考:何时在 MySQL 中使用单引号、双引号和反引号 来查看不同的组合。

于 2013-10-20T00:58:41.020 回答