我正在尝试在数据库中进行程序更新,但我有一个担心。 当我向mysql服务器发出更新语句时,我希望它将另一个数据添加到MYSQL数据库,它只是覆盖那里的第一个数据并将新数据保存到数据库中。我想要它做的是添加另一个数据到数据库加上那里已有的数据。
我的代码看起来像这样
<?php
session_start();
require_once('inc/config.php');
if(!isset($_SESSION['username'])){
header('Location: signon.php');
}
?>
<?php
require_once('inc/config.php');
$con = mysqli_connect($host, $user,$pass, $db) or die ('Cannot Connect: '.mysqli_error());
//get parameters
$inst_name = mysqli_real_escape_string($con,$_POST['inst_name']);
$inst_name2 = mysqli_real_escape_string($con,$_POST['inst_name2']);
$grade = mysqli_real_escape_string($con,$_POST['grade']);
$study_course = mysqli_real_escape_string($con,$_POST['study_course']);
$qualification = mysqli_real_escape_string($con,$_POST['qualification']);
$other_qualification = mysqli_real_escape_string($con,$_POST['other_qualification']);
$completion_year = mysqli_real_escape_string($con,$_POST['completion_year']);
$data ="inst_name = '".$inst_name."',inst_name2 = '".$inst_name2."',grade = '".$grade."', study_course = '".$study_course."',qualification = '".$qualification."',other_qualification = '".$other_qualification."',completion_year = '".$completion_year."'";
//$sql = "UPDATE user_info SET inst_name = '".$inst_name."',inst_name2 = '".$inst_name2."',grade = '".$grade."', study_course = '".$study_course."',qualification = '".$qualification."',other_qualification = '".$other_qualification."',completion_year = '".$completion_year."' WHERE username = '".$_SESSION['username']."'";
$sql = "UPDATE user_info SET $data=CONCAT($data,inst_name = '".$inst_name."',inst_name2 = '".$inst_name2."',grade = '".$grade."', study_course = '".$study_course."',qualification = '".$qualification."',other_qualification = '".$other_qualification."',completion_year = '".$completion_year."') WHERE username = '".$_SESSION['username']."'";
mysqli_query($con,$sql) or die ('Failed Query: '.mysqli_error($con));
mysqli_close($con);
header("Refresh:0; url=EDWE.php");
?>
显然我做得不好。
答案 0 :(得分:0)
要创建新记录而不是更新现有记录,请尝试使用SQL INSERT
语句,而不是使用UPDATE
。 INSERT
创建记录并UPDATE
编辑现有记录。
答案 1 :(得分:0)
首先从该表中为该用户选择现有数据
Select * from user_info WHERE username = '".$_SESSION['username']."'
然后将新数据连接到现有数据 例如对于成绩
$grade_posted_data = $_POST['grade']);
$grade_existing data = $fetched_data['grade'];
$grade=$grade_existing_data.','.$grade_posted_data;////// using whatever separator you require
然后更新您的查询
$sql = "UPDATE user_info SET $data=CONCAT($data,inst_name = '".$inst_name."',inst_name2 = '".$inst_name2."',grade = '".$grade."'..etc etc....) WHERE username = '".$_SESSION['username']."'";