插入时出错

时间:2015-01-28 08:35:10

标签: mysql sql

无效的SQL:INSERT INTO testimonial_master(customer_name,email_id,phone_no,testimonial,status,date)VALUES(' Test',' Test@test.com',& #39; 989889889','我' hv block',' 0',now())

   function Insert($POST)
    {
        global $db;
        $sql =  "INSERT INTO ". OBR_MASTER. " (customer_name,email_id,phone_no,obr,status,date,persons,time,min,entrydate) "
            .   " VALUES ( "
            .   " '" . $POST['customer_name'] . "', "
            .   " '" . $POST['email_id'] . "', "
            .   " '" . $POST['phone_no'] . "', "
            .   " '" . $POST['obr'] . "', "
            .   " '0', "
            .   " '" . $POST['date'] . "', "
            .   " '" . $POST['persons'] . "', "
            .   " '" . $POST['time'] . "', "
            .   " '" . $POST['min'] . "', "
            .   " '" . $POST['entrydate'] . "' "

            .   " )"; 
        $db->query($sql);
    }

3 个答案:

答案 0 :(得分:2)

您在一个字符串中有一个引号:

, 'I'hv block'

你可以用2个单引号来逃避它。

, 'I''hv block'

但更好的解决方案是使用准备好的陈述。

答案 1 :(得分:0)

你的报价搞砸了:

'I'hv block'

造成错误的原因...... 除此之外,简单地将POST值插入数据库是非常危险的......

答案 2 :(得分:0)

'我'阻止'打破字符串,使用mysql_real_escape_string函数使它们工作。

mysql_real_escape_string($POST['obr'])

这是破坏字符串的参数,安全方面在所有post参数上使用它。