根据用户ID插入数据

时间:2014-02-24 19:07:31

标签: php mysql

我有一个这样的数据库设置:

MySQL database

我有一个php网站,其中包含使用以下语句提交数据的表单:

$sql="INSERT INTO tasks (main_task, subtask, start, end)
VALUES
('$_POST[main_task]','$_POST[subtask]','$_POST[start]','$_POST[end]')";

if (!mysqli_query($con,$sql)) 
  {
  die('Error: ' . mysqli_error($con));
  }
header("Location: xxx");

mysqli_close($con);

如何设置它以便根据id_user提交数据?

我认为我必须使用WHERE语句,或者最好在这种情况下使用外键而不是主键?

非常感谢。

2 个答案:

答案 0 :(得分:0)

首先:你应该像那样逃避你的价值

  $maintask = mysqli_real_escape_string($_POST['main_task']);
  and so on with other variables.

第二次使用此查询并将user_id插入其列。

   $sql="INSERT INTO tasks (main_task, subtask, start, `end`, user_id)
         VALUES
     ('$maintask',.....other escaped variables ... ,$userid_variable
        ";

答案 1 :(得分:0)

您还需要插入用户ID。没有用户ID,您无法识别哪个用户的任务。

您可以使用session。 试试这样:
当用户登录您的登录页面时,将用户ID设置为会话变量,如下所示:

session_start();
$_SESSION['user_id'] = "current_login_user_id";

和本页:

session_start();

$strMainTask = mysqli_real_escape_string($_POST['main_task']);
$strSubTask = mysqli_real_escape_string($_POST['subtask']);
$strStart = mysqli_real_escape_string($_POST['start']);
$strEnd = mysqli_real_escape_string($_POST['end']);
$intUser = mysqli_real_escape_string($_SESSION['user_id']); //get current user id from session variable

$sql="INSERT INTO `tasks` (`main_task`, `subtask`, `start`, `end`,`user_id`)
VALUES
('$strMainTask','$strSubTask','$strStart','$strEnd',$intUser)";

if (!mysqli_query($con,$sql)) 
  {
  die('Error: ' . mysqli_error($con));
  }
header("Location: xxx");

mysqli_close($con);

这应该是有道理的:)