PHP-如何第一次插入表单数据和第二次更新相同的数据

标签 php mysql

我有一个带有输入字段名称(id、设置、值)和提交按钮的表单。现在,我正在将表单数据插入数据库,我希望当第一次插入数据时,如何在不插入数据的情况下第二次更新相同的表单数据..

    <?php 
    if(isset($_POST['save']))
    {
    include "connection.php" ;

    $id = $_POST['id'] ;
    $name = $_POST['name'] ;
    $value   = $_POST['value'] ;

$query="create table if not exists settings(id int(10),name varchar(50),value varchar(100))";
$results=mysql_query($query) or die("QUERY FAILED 1:".mysql_error());   

$query="INSERT INTO settings VALUES('$id','$name','$value')"; 
$results=mysql_query($query) or die("QUERY FAILED 2:".mysql_error());


 $query="update settings set value='$value' where id='$id'";
 $results=mysql_query($query) or die("QUERY FAILED 3:".mysql_error());



     echo $settings ;

    }

最佳答案

需要查询表来检查该值是否存在。如果该记录不存在,则插入该记录,否则更新该记录。

<?php
    if(isset($_POST['save']))
    {
    include "connection.php" ;
    $id = $_POST['id'] ;
    $name = $_POST['name'] ;
    $value   = $_POST['value'] ;

    $query="create table if not exists settings(id int(10),name varchar(50),value varchar(100))";
    $results=mysql_query($query) or die("QUERY FAILED 1:".mysql_error());


    // pass the name and check whether the value is exists or not,
    $result = mysql_query("SELECT * FROM settings WHERE name = '".$name."'");
    $number_of_rows = mysql_num_rows($result);

    // if number of rows is 0, then insert it. else update it
    if($number_of_rows == 0){
        $query="INSERT INTO settings VALUES('$id','$name','$value')";
    } else{
        // get the row id
        $data_row = mysql_fetch_row($result);
        $record_id = $data_row[0];
        $query="UPDATE settings SET value='".$value."' WHERE id = '".$record_id."'";
    }

    $results=mysql_query($query) or die("QUERY FAILED 2:".mysql_error());

     echo "Record inserted/updated";
    }

关于PHP-如何第一次插入表单数据和第二次更新相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49001141/

相关文章:

php - Mysql为每个id更新不同的字段(列)

java - 在 php 中登录到服务器端时在 android 中进行 session 处理

php - jQuery AJAX - 将值传递给 PHP 文件

mysql - 如何在Mysql中同时获取数据

php - 在 Cakephp 中使用 javascript 获取日期值

php - 如何一一管理上传操作

mysql - 如何确定我在 Linux、MyISAM 和 InnoDB 中使用的是哪种类型的 mysql?

Mysql优化where子句中的子查询

php - 与本地时间相比更改 PHP 变量

php - mysql 的到达日期和出发约束(检查约束)