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);
?>
Warum starten Sie Ihre Sitzung nicht? – Drew
Die Anweisung SQL 'UPDATE ...' verwendet nicht die Variable '$ user', sondern nur' WHERE username = 'test'' –
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 –