PHP内爆函数无法正常工作

时间:2016-06-06 09:23:33

标签: php

我正在尝试使用php中的implode函数将多个选中的值插入表中但是我收到此错误:

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 ')' at line 1

PHP

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "edusa_form")) {

$engine1 = implode(',', $_POST['written_tests']);
$insertSQL = sprintf("INSERT INTO edusa_regis (fname) VALUES ('$engine1'))");

HTML

<input name="written_tests[]" type="checkbox" id="written_tests[]" value="SAT" />
        SAT&nbsp;
        <input name="written_tests[]" type="checkbox" id="written_tests[]" value="ACT" />

3 个答案:

答案 0 :(得分:1)

问题不在于implode功能。您的查询语法错误。

$insertSQL = sprintf("INSERT INTO edusa_regis (fname) VALUES ('$engine1'))");

查询中还有一个右括号。

答案 1 :(得分:0)

在if语句中的$ _POST [&#34; MM_insert&#34;]之后以及)

结束时的sprintf中,你还有一个额外的'engine1'))
if ((isset($_POST["MM_insert"]) && ($_POST["MM_insert"] == "edusa_form")) {
$engine1 = implode(',', $_POST['written_tests']);
$insertSQL = sprintf("INSERT INTO edusa_regis (fname) VALUES ('$engine1')");

答案 2 :(得分:0)

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "edusa_form")) {
    $engine1 = implode(',', $_POST['written_tests']);
    $insertSQL = sprintf("INSERT INTO edusa_regis (fname) VALUES ('$engine1')");
    mysqli_query($con, $insertSQL);
}