允许用户使用插入查询向其配置文件添加信息


Allow user to add information to their profile using insert query

我使用以下函数:

function Add_Oddjob ($Add_Oddjob){
            global $MemberID;
            $update = array();
            array_walk($Add_Oddjob, 'array_sanitize');
            foreach($Add_Oddjob as $field=>$data){ //loop through update data in Add_Oddjob.php
                $update[] = '`' . $field . '` = ''' . $data . ''''; 
            }
            mysql_query("INSERT INTO `oddjob`($field) VALUES ($data)");

Add_Oddjob.php

if (isset($_POST['OddJobName']) && isset($_POST['Description']) && isset($_POST['DaysAvailable']) && empty($errors) === true){//if (empty($_POST) === false && empty($errors) === true) { //if (isset(empty($_POST['OddJobName'])) && isset(empty($_POST['Description'])) && isset(empty($_POST['DaysAvailable'])) === false && empty($errors) === true)
            $daysavailable='';
            foreach ($_POST['DaysAvailable'] as $value)
            {
            $daysavailable .=$value." ";
            }
            $Add_Oddjob = array (
                'MemberID'      => $MemberID,
                'OddJobName'    => $_POST['OddJobName'],
                'Description'   => $_POST['Description'],
                'DaysAvailable' => $daysavailable, 
                );
                Add_Oddjob ($Add_Oddjob);
                if(success){
                 header('Location: member.php?username='.$username);
                 exit ();
                }
            } else if (empty($errors) === false){
                //otherwise output errors
                echo output_errors($errors);
            }

但是当我以用户身份登录并输入数据时,我得到以下错误:

你的SQL语法有错误;查看与MySQL服务器版本对应的手册,以便在第1行'WHERE MemberID ='附近使用正确的语法

Oddjob表中的MemberID是成员表中的主键。其思想是,每个成员在奇数作业表中可以有多个奇数作业。我需要做一些连接吗?

也如果我尝试插入查询phpmyadmin:

   INSERT INTO `oddjob`(`OddJobName`, `Description`, `DaysAvailable`) VALUES (painter,test,Friday) WHERE `MemberID` = 35

我得到这个错误:

#1064 - 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 'WHERE `MemberID` = 35' at line 1

任何帮助将是伟大的!

编辑

所以我从我的查询中删除了WHERE子句,因为我没有意识到我不能在插入查询中拥有它。现在,如果我回显查询,我看到:INSERT INTO odjob (DaysAvailable) VALUES (Wednesday )由于某种原因,它没有拾取任何其他字段。知道为什么吗?

我想你漏掉了引号。试试这个

  INSERT INTO `oddjob`(`OddJobName`, `Description`, `DaysAvailable`) VALUES (painter,test,Friday) WHERE `MemberID` = 35

可以用update语句代替insert语句。请看看这个链接

如何在MySQL插入语句中添加where子句?

我不明白where子句在Insert语句中的用途。您是否试图在成员Id 35之后插入记录?插入查询不能使用条件语句。

只是删除where子句,我猜它应该为u工作

INSERT INTO `oddjob`(`OddJobName`, `Description`, `DaysAvailable`) VALUES (painter,test,Friday)