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!!";
}