【问题标题】:Insert using Where clause使用 Where 子句插入
【发布时间】:2015-10-30 13:50:38
【问题描述】:

我在使用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='aniket276'' 附近

【问题讨论】:

  • 为什么在 INSERT 期间使用 WHERE ?如果您的线路已经存在,请改用 UPDATA。
  • 会更新工作吗?查询会是什么样子@Nirnae
  • 插入查询的语法是INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...)不要在里面使用where子句
  • 您是要在表中插入新行,还是要更新已经存在的行?

标签: php mysql sql


【解决方案1】:

使用 MySQL 更新

像这样:-

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      插入没有 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)
      

      【讨论】:

        【解决方案4】:

        要插入新记录,不要使用 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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多