Mysqli_Query INSERT

时间:2013-10-19 23:54:33

标签: php insert mysqli

由于某种原因,这段代码没有插入我的数据库,几天前它正在工作,我发誓。现在,没什么。有没有人有任何想法,为什么它不工作?它只是给出任何错误。

$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);

2 个答案:

答案 0 :(得分:1)

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

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

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

这些我已经知道,但你可以咨询:When to use single quotes, double quotes, and backticks in MySQL 看到不同的组合。

答案 1 :(得分:1)

永远不要使用此代码 因为它没有丝毫意义:出于某种原因,您在处理数据库时使用 HTML 编码。这显然是错误的。更不用说你应该使用预准备语句而不是将值插入到查询中。

请摆脱当前的方法,并在此处学习正确的方法:How can I prevent SQL injection in PHP?