0

嘿伙计们,我正在尝试使用 php ang ajax 更新我的数据库,但假设文本框是动态的,这就是为什么我试图通过单击一个按钮使用多个更新来更新数据库,但是我的火虫说“你的SQL 语法;查看与您的 MySQL 服务器版本相对应的手册,以在 '= '100' WHERE student_id = '33' AND subject_id = '2' AND school_id = '1' AND adv' 在第 1 行附近使用正确的语法“我不太确定我的代码,因为我只是在尝试如何在 ajax 中使用 php 进行操作。

PHP:

    session_start();
    $school_id = $_SESSION['school_id'];
    $faculty_id = $_SESSION['user_id_fac'];
    $subject_id = $_POST['subject_id'];
    $year_grade_level = $_POST['year_level'];
    $subject_handeler_id = $_POST['subject_handler_id'];
    $student_grades_boy = $_POST['student_grades_boy'];
    $student_grades_girl = $_POST['student_grades_girl'];

    $update_grades_boys = "UPDATE registrar_grade_archive SET"; 

    //SET status = '0' WHERE subject_id = '$subject_id'"

    $vaues_girl = array();
    $values_boy = array();


    foreach ($student_grades_boy as $key=>$data) {
                                $student_id_B= $data['studnt_B_id'];
                                $grade_B = $data['studnt_grade_B'];

        $values_boy[$key] = 'grade = \''.$grade_B.'\' WHERE student_id = \''.$student_id_B.'\' AND subject_id = \''.$subject_id.'\' AND school_id = \''.$school_id.'\' AND advisor_faculty_id = \''.$faculty_id.'\' AND subject_handler_id = \''.$subject_handeler_id.'\' ' ;

                            }

        $values_boy = implode(', ', $values_boy);

        $ready_edit_grades_boy = $update_grades_boys . $values_boy;

        $save_grades_boy = mysql_query($ready_edit_grades_boy) or die(mysql_error());

请帮助伙计们。提前致谢

4

4 回答 4

2

这里有一些问题:

  • 如果$student_grades_boy包含超过 1 个项目,您的 sql 将有多个WHERE语句(您只能有 1 个);
  • 你需要一个空格SET和列名;
  • 你有一个严重的 sql 注入问题;
  • 您应该切换到 PDO 或 mysqli,因为这些mysql_功能已被弃用。
于 2013-01-14T17:44:28.017 回答
1

看来您在SET和之间没有空格grade

在此处添加空格应该可以解决问题:

$update_grades_boys = "UPDATE registrar_grade_archive SET ";

如果这不这样做,如果您可以发布结果echo $ready_edit_grades_boy;并更新您的问题,这将非常有帮助。

于 2013-01-14T17:42:16.903 回答
1

尝试

$update_grades_boys = "UPDATE registrar_grade_archive SET "; 

SET..之后需要一个空格

于 2013-01-14T17:42:36.280 回答
0

你没有转义变量,所以它可能是你的值中的一些 ' 或 " 。

http://php.net/manual/en/mysqli.real-escape-string.php

于 2013-01-14T17:41:06.863 回答