使用Where子句插入



我在使用where子句插入数据时遇到问题。以下是查询:

    $hi= "INSERT INTO user_detail (email, looking, username, profession, experience,
         current_work, state, job_type, about, college, diploma, department)
             VALUES ('$email', '$looking', '$username', '$profession','$experience',
     '$current_work', '$state', '$job_type', '$about', '$college', '$diploma', '$department')
 WHERE s='$username'";

它向我显示了错误:

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

使用MySQL更新

比如:-

UPDATE user_detail SET email='$email' WHERE s='$username';

如果您想更改使用WHERE子句选择的记录中的字段

insert中的WHERE子句没有任何意义。

如果要向数据库中添加新行,则不需要WHERE子句,因为没有可以引用的现有行。

如果要更新现有行,则不应使用INSERT语句,而应使用UPDATE语句。

插入没有WHERE子句。

如果您只想为特定的用户名插入一行,那么最好在调用php脚本中这样做。

如果你想修改特定用户名的现有行,那么你可以使用更新语句:-

UPDATE user_detail
SET email = '$email', 
    looking = '$looking', 
    username = '$username', 
    profession = '$profession', 
    experience = '$experience', 
    current_work = '$current_work', 
    state = '$state', 
    job_type = '$job_type', 
    about = '$about', 
    college = '$college', 
    diploma = '$diploma', 
    department = '$department'
WHERE s = '$username'

如果您想在不存在的情况下插入一行,但如果确实存在则进行更新,则可以执行insert/ON DUPLICATE KEY update(假设用户名的s列上有唯一索引):-

INSERT INTO user_detail (s,
                        email, 
                        looking, 
                        username, 
                        profession, 
                        experience, 
                        current_work, 
                        state, 
                        job_type, 
                        about, 
                        college, 
                        diploma, 
                        department) 
VALUES ('$username',
        '$email', 
        '$looking', 
        '$username', 
        '$profession', 
        '$experience', 
        '$current_work', 
        '$state', 
        '$job_type', 
        '$about', 
        '$college', 
        '$diploma', 
        '$department') 
ON DUPLICATE KEY UPDATE email = VALUES(email), 
                        looking = VALUES(looking), 
                        username = VALUES(username), 
                        profession = VALUES(profession), 
                        experience = VALUES(experience), 
                        current_work = VALUES(current_work), 
                        state = VALUES(state), 
                        job_type = VALUES(job_type), 
                        about = VALUES(about), 
                        college = VALUES(college), 
                        diploma = VALUES(diploma), 
                        department = VALUES(department)

若要插入新记录,请不要使用WHERE。当您想引用特定记录时,您可以使用WHERE。要做到这一点,请使用MySQL更新。

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value 

http://www.w3schools.com/php/php_mysql_update.asp

最新更新