使用会话生成的信息更新mysql表

时间:2016-03-17 16:21:51

标签: php mysql session

我目前正在大学做一个网络编程模块,并且在一些家庭作业集中遇到了麻烦。我们打算插入代码,用新信息(性别,年龄,电子邮件,评论)更新我们当前的mysql表。需要将此信息插入到每个人会话生成的ID(currID)的行中。我们如何编码要插入特定于会话的行的更新信息?

<?php
session_start();
include('muqHeader.html');
include('commonSrc.php');
include('../shareCode/mysqlLink.php');

if ($_SERVER['REQUEST_METHOD'] == 'POST'):
// update the mf record 

if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){
 }else{
     echo "Not a valid email address"; 
 }

if(filter_var($_POST['comment'], FILTER_SANITIZE_STRING)){
}else{
    echo "Text includes invalid characters";   
}

$gender = $_POST['gender'];
$age = $_POST['age'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$currID = $_SESSION['currID'];

if ($_POST['submit']){
$sql = "UPDATE muq
        SET (gender='$gender', age = '$age', email = '$email', comment =                 '$comment')
        WHERE (muqID = '$currID')"; 
}

    if (@mysqli_query($link, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . @mysqli_error($link);
}

else:

$useTime = implode(',', $_SESSION['useTime'] );
$usedM = implode( ',', $_SESSION['usedM'] );
$tmp = array();
for($i=0; $i < count($_SESSION['freqRate']); $i++) {
$tmp[$i] = implode( '', $_SESSION['freqRate'][$i] ); // empty string as     'glue'
}
$freqRate = implode( ',', $tmp );
$dateTime = $_SESSION['dateTime'];
$taskTime = (time() - $_SESSION['startTime']) / 60;   //in minutes
$sql = "INSERT INTO muq
    (dateTime, taskTime, useTime, usedM, freqRate)
    VALUES ('$dateTime', '$taskTime', '$useTime', '$usedM', 'freqRate')";
$link = connectDB();
@mysqli_query( $link, $sql );
$_SESSION['currID'] = @mysqli_insert_id($link);
@mysqli_close($link);

?>

1 个答案:

答案 0 :(得分:0)

那么,在回答你的问题之前,这里有一些你需要尊重的编码规则: 1-您不必使用比您需要的更多的行。这意味着如果您可以使用4行,则不必使用4行进行空“if”。 例: 而不是:

if (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)){
}else{
   echo "Not a valid email address"; 
}

你可以这样做:

if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))
    echo "Not a valid email address";

第二,要更新数据库中的行,您需要一个ID。这将是您要用来告诉您的数据库引擎要更新哪一行的密钥,因为如果不是“他”将不知道哪个行“他”应该更新(我正在考虑将数据库引擎视为像我这样的人你 ) 因此,您需要在会话中注入该密钥(帐户ID或其他内容),以便稍后在更新数据库时使用,方法是告诉您db引擎“他”需要更新该密钥标识的行。