2017-01-15 36 views
0

如何插入到當前會話行」 表名是旅館和會話名稱是小屋。插入到當前會話中的PHP

<?php 
session_start(); 
if (!isset($_SESSION['lodge'])) { 
    header("Location:lodge.php"); 
} 
$con=mysqli_connect("localhost","root","pwd","db"); 

$company_shortbio= mysqli_real_escape_string($con, $_POST['company_shortbio']); 
$company_longbio = mysqli_real_escape_string($con, $_POST['company_longbio']); 
$company_location = mysqli_real_escape_string($con, $_POST['company_location']); 
$service1 = mysqli_real_escape_string($con, $_POST['service1']); 
$service2 = mysqli_real_escape_string($con, $_POST['service2']); 
$service3 = mysqli_real_escape_string($con, $_POST['service3']); 
$service4 = mysqli_real_escape_string($con, $_POST['service4']); 

$sql="UPDATE lodges SET 
company_shortbio='$company_shortbio',company_longbio='$company_longbio',company_location='$company_location',service1='$service1',service2='$service2',service3='$service3',service4='$service4' 

"; 

if (!mysqli_query($con,$sql)) 
    { 

     header("Location:lodgeprofile.php?error"); 
    } 




else{ 

header("Location:lodgeprofile.php?success"); 
    exit; 
} 
?> 

將數據插入到多部未華,但其插入在所有的行,而不是特定的活動session.Please幫助,即時通訊新的php.And我也知道這個代碼容易injectionjections.This只是一個小assignment.The表主鍵是lodge_id

+0

你有沒有WHERE子句或限制,以便將更新 – Chris

回答

1

因爲你不使用條件或限制的查詢將更新表中的每一行。

UPDATE table SET (column=value) WHERE condition(s) LIMIT n 

實例與條件:

$sql = "UPDATE lodges SET company_shortbio='$company_shortbio',company_longbio='$company_longbio',company_location='$company_location',service1='$service1',service2='$service2',service3='$service3',service4='$service4' WHERE somecolumn=$somevalue"; 

例與LIMIT:

$sql = "UPDATE lodges SET company_shortbio='$company_shortbio',company_longbio='$company_longbio',company_location='$company_location',service1='$service1',service2='$service2',service3='$service3',service4='$service4' LIMIT 1"; 

你讓還結合WHERE和限制你的查詢中。

+0

可以編輯代碼,使我得到一個清晰的圖像中的所有行,即時通訊新的PHP。 – RileyManda

+0

$ sql =「UPDATE lodges SET(lodge_id = cname)WHERE $ _SESSION ['lodge'] = $ row ['lodge_id'] LIMIT 1 company_shortbio ='$ company_shortbio',company_longbio ='$ company_longbio',company_location ='$公司_位置',service1 ='$ service1',service2 ='$ service2',service3 ='$ service3',service4 ='$ service4'即時獲得錯誤 – RileyManda

+0

更新了我的答案 – Chris

1

我想,在另一段代碼,有個人設置$ _SESSION [「旅館」]到當前用戶的lodge_id。

在這種情況下,你將不得不做這樣的事情:

$lodge_id=$_SESSION['lodge']; 
$sql="UPDATE ... WHERE lodge_id=$lodge_id;"; 

但是你是對的,這個代碼是易於注射。我知道避免注射的最好方法是使用prepared statements

一兩件事:重新定向,如果$ _SESSION沒有「小屋」後,你應該退出,否則後續代碼會被執行的。

+0

好的,我試試.thanks。 – RileyManda