簡體   English   中英

如何使用SESSION數據來選擇1個數據庫條目,然后使用PHP和MySQL的表單中的數據插入到另一個表中?

[英]How do I use SESSION data to SELECT 1 database entry and then INSERT into another table with data from a form as well with PHP and MySQL?

拋開所有安全問題。

  • 我創建了一些會話數據。 此會話數據包括存儲在“myusername”下的用戶名。

  • 我還創建了一個html表單,在我的一個表中添加一行。


我試圖從查詢中檢索一些數據(使用會話數據),並將其與已提交的表單數據放在一起。

基本上創建誰提交數據的記錄。

這是我的代碼:

<?php
session_start();
if ( isset( $_SESSION['user'] ) ){
  header("location:failedlogin.html");
}
echo $_SESSION['myusername'];
var_dump($_SESSION);

//Connect
$con= mysql_connect("localhost","root","password");
if (!$con) { die('Could not connect: ' . mysql_error()); }
mysql_select_db("database1", $con);

//create Get UserId from user
$result= mysql_query("SELECT UserId FROM user
WHERE UserName='{$_SESSION['myusername']}'");

//I think this is where the problem is 
//execute query and store results
if($result){
  $data = mysql_fetch_assoc($result);
}

//insert form data and $data into database 1
$sql="INSERT INTO bug 
(bugName, bugBy, bugPriority, bugFor, bugContainer, bugFixed, bugCommentCount)
VALUES ('$_POST[bugname]','$data[0]','$_POST[bugpriority]',
        '$_POST[bugfor]','$_POST[bugcontainer]','0','0')";

if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); }
mysql_close($con)
?> 

我似乎無法從SELECT查詢中獲取數據,表單數據經過精細處理。

對不起,如果我把它放得很糟糕。 我發現很難理解我做錯了什么,所以我不知道如何解釋我正在尋找的東西。

感謝您的幫助! 如果您需要更多信息,請與我們聯系。

您的SQL語句不正確,變量需要轉義。

"...VALUES('". $_POST['bugname'] . "')";

正如你現在所擁有的那樣, $_POST[bugname]將嘗試找到一個名為'bugname'的常量全局變量。 這不存在。

但是, $_POST['bugname']將引用數組中的正確鍵。

我不得不提到這不僅是創建SQL語句的一種可怕方式,而且也非常不安全

你正在使用fetch_assoc,所以它返回一個關聯數組:

而不是$data[0]

insert $data['UserId']

如果沒有這樣做,你是否在插入語句之前檢查$data是否有任何內容?

ps你應該學習PDO: http//wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM