2016-07-12 5 views
-1

aktualisieren Ich wollte die Informationen des bestimmten Benutzers aktualisieren, mit der Sitzungsvariablen, aber wenn ich die Sitzungsvariable in der WHERE-Klausel verwenden, ist die Zeile nicht betroffen.nicht in der Lage, die Tabelle mit Sitzungsvariable

Hier speichere ich den Wert der Sitzungsvariablen 'Benutzername' in die Variable $ user, und ich benutze die $ user-Variable in der update where-Klausel, um die Zeile zu aktualisieren. Aber wenn ich es aktualisiere, wird es nicht aktualisiert. hier ist der Code i verwendet:

<?php 
//session_start(); 
include '../global_config/databaseconfig.php'; 
global $user; 
if(isset($_SESSION['username'])){ 
    $user = $_SESSION['username'];} 
echo $user; 
global $fname;global $lname;global $phno;global $gender; 
if(isset($_POST['fname'])){ $fname = $_POST['fname']; } 
if(isset($_POST['lname'])){ $lname = $_POST['lname']; } 
if(isset($_POST['phno'])){ $phno = $_POST['phno']; } 
if(isset($_POST['gender'])){ $gender = $_POST['gender']; } 
echo $fname; 
// $lname = $_POST['lname']; 
//$user variable contains the username 

    $tbl_name = "members"; 
    // $host = "localhost"; // Host name 
    // $username = "root"; // Mysql username 
    // $password = ""; // Mysql password 
    // $db_name = "login"; // Database name 
    // $tbl_name = "members"; // Table name 
    //CONNECTION 
    $mysqli = new mysqli($host,$username,$password,$db_name); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 

// echo $mysqli->host_info . "\n"; 

$mysqli = new mysqli("127.0.0.1",$username,$password,$db_name, 3306); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 
// echo $mysqli->host_info . "\n"; 
$result = $mysqli->query("UPDATE `members` SET `firstname`='$fname' WHERE `username`='$user'"); 
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows); 


?> 
+0

Warum starten Sie Ihre Sitzung nicht? – Drew

+0

Die Anweisung SQL 'UPDATE ...' verwendet nicht die Variable '$ user', sondern nur' WHERE username = 'test'' –

+0

Nebenbei bemerkt ist es gefährlich, '$ _POST'-Daten direkt in SQL zu verwenden Sie eröffnen eine große Sicherheitslücke, die als SQL Injection Attack bekannt ist. Diese Webseite erklärt mehr und wie man es verhindert: http://packetcode.com/article/preventing-sql-injection-php-security –

Antwort

0

Dank für die Hilfe.

//use this at the beginning of the file 
    @session_start(); 

Sie müssen die Sitzungen vor der Verwendung starten.