Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 同时向数据库插入和更新数据_Php_Mysql - Fatal编程技术网

Php 同时向数据库插入和更新数据

Php 同时向数据库插入和更新数据,php,mysql,Php,Mysql,我正在尝试插入数据库并同时更新,但我不断被添加,无法更新 您不需要在UPDATE查询中加入表 function Writeform($name,$type,$num,$abroad,$datein,$cmnd,$address,$room_name){ global $conn; $query= "INSERT INTO form (Guest_name, Guest_type, Guest_num, Guest_abroad, datein, Guest_CMND,

我正在尝试插入数据库并同时更新,但我不断被添加,无法更新

您不需要在
UPDATE
查询中加入表

function Writeform($name,$type,$num,$abroad,$datein,$cmnd,$address,$room_name){
    global $conn;
    $query= "INSERT INTO form 
    (Guest_name, Guest_type, Guest_num, Guest_abroad, datein, Guest_CMND, Guest_Address, room_name) VALUES 
    ('$name', '$type','$num','$abroad','$datein','$cmnd','$address','$room_name')";
    if(mysqli_query($conn,$query)){
        echo " added !";
        $sql="UPDATE room r INNER JOIN form f ON r.room_name=f.$room_name SET r.room_status='not avaliable'";
        if (mysqli_query($conn, $sql)) {
            echo " Record updated successfully ";
            }
            else{
                echo "Couldn't Update !!";
            }
    }
    else{
        echo "Couldn't Add!!";
    }
}
但最好使用事先准备好的声明

$sql = "UPDATE room SET room_status = 'not available'
        WHERE room_name = '$room_name'";

您对r.room\u name=f.$room\u name的第二个查询
不应带有美元符号。您检查的是表字段,而不是
$room\u name
变量。检查错误如何<代码>回显mysqli_错误($conn)您的数据库、结构(命名约定)到处都是,抱歉,只是一个观察。例如
Guest\u name、datein、Guest\u CMND、Guest\u Address、room\u name
一些较高,一些较低,一些与
\ucode>混合,一些没有。这可能会导致许多意想不到的错误,因为DB在Unix上区分大小写,但在windows上不区分大小写。如果我没记错的话,这是关于什么的,为什么要加入一个名为column的变量<代码>在r.room\u name=f.$room\u name上
f
dot
variable
意味着
f
中的字段是以房间命名的?你看到了吗,我认为r.room\u name=f.$room\u name
上的
很奇怪,但可能暗示了一些奇怪的模式。仍然不需要加入,重新阅读“SQL”。@ArtisticPhoenix我不这么认为。他只是将行插入到
表单
,它有一个
房间名称
列,似乎没有任何动态列名。他将
$room\u名称
的值插入该列。您假设他知道自己在做什么。我想他就像99%的人在这里问问题,他几乎是个无厘头的人,只是在他们工作之前尝试随机的事情。这是一个公平的观点!
$sql = "UPDATE room SET room_status = 'not available'
        WHERE room_name = ?";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, "s", $room_name);
if (mysqli_stmt_execute($stmt)) {
    echo "Record updated successfully!";
} else {
    echo "Couldn't update!!";
}