在sql语句中使用php $ _SESSION

时间:2013-12-09 22:43:10

标签: php mysql sql

我正在尝试更新数据库中的表。这是我到目前为止的代码:

$query =
"UPDATE user
SET name='$name', pword='$pword', email='$email', address='$address', city='$city', state='$state', zip='$zip'
WHERE uname ='" . $_SESSION['uname'] . "'";

我的页面呈现正确,但表格永远不会使用新数据进行更新。我认为这是因为代码无法计算我们这个参数的整个$ _SESSION部分。有什么想法吗?

我正在尝试添加此代码以填充此处的$ _SESSION ['uname']部分......

$uname = $_SESSION["sname"]["uname"];

我正在试图弄清楚sname来自哪里......

2 个答案:

答案 0 :(得分:0)

这有很多问题。它一开始就非常容易受到SQL注入的攻击。<​​/ p>

但是它没有更新你的表的原因是$query只是一个字符串。您不会在任何地方显示MySQL,MySQLi或PDO连接,也不会显示您正在连接上执行语句。

根据您上面的评论,问题是$_SESSION['uname']是空字符串或未定义。您的问题不在此查询中;它位于代码的其他部分。

答案 1 :(得分:0)

<?php

$link = mysqli_connect("myhost","myuser","mypassw","mybd") or die("Error " . mysqli_error($link));

$query = "SELECT uname FROM mytable WHERE somecondition LIMIT 1" or die("Error " . mysqli_error($link));

$result = $link->query($query);

while($row = mysqli_fecth_assoc($result)) {
  $user=$row["uname"] ;
} 
$_SESSION['uname']=$user;

?>

这是一些基本的php,用于将用户从DB转换为SESSION,使其适应您的数据库。别忘了session_start