不确定如何在mysql中使用php变量

时间:2017-02-01 06:09:50

标签: php mysql

这是一个空白屏幕。具体做什么来测试会话变量是否在数据库中并从不同的列返回相应的值?

$sql = "SELECT email FROM fgusers3
WHERE username = '$_SESSION['username']'";
$result = $conn->query($sql);

3 个答案:

答案 0 :(得分:5)

在PHP中使用PHP变量的最正确方法是使用预准备语句。

$query = $dbh->prepare("SELECT email FROM fgusers3 where username=:username")
$query->execute(array(":username"=>$_SESION['username']));

这远远优于涉及直接字符串连接的解决方案,并且仍然优于涉及字符串转义的解决方案。

您不应该像其他一些答案那样使用直接字符串连接的原因是它会导致SQL注入。攻击者可以使用精心设计的字符串轻松获得对数据库的完全访问权限。

上面的例子使用的是PDO,在我看来,这是一个远远优于mysqli的API。 Mysqli也有prepared statements它的用法类似,但语法不同。

答案 1 :(得分:1)

试试这个: -

<?php
$sql = "SELECT email FROM fgusers3 WHERE username = '".$_SESSION['username']."'";
$result = $conn->query($sql);

?>

答案 2 :(得分:1)

$sql = "SELECT count(*) exists FROM fgusers3 WHERE username = '".$_SESSION['username']."'";
$result =  $conn->query($sql);
echo  $result[0]['exists'];