使用更新CONCAT将数据添加到数据库

时间:2017-07-26 07:11:47

标签: php mysql

我正在尝试在数据库中进行程序更新,但我有一个担心。 当我向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");
    ?> 

显然我做得不好。

2 个答案:

答案 0 :(得分:0)

要创建新记录而不是更新现有记录,请尝试使用SQL INSERT语句,而不是使用UPDATEINSERT创建记录并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']."'";