通过函数传递数据库字段

时间:2014-12-26 21:07:31

标签: php mysql

我是PHP的初学者,通过观看视频来学习基础知识。我们在创建表单的过程中。除了下面的内容,我理解发生的一切。有人可以向我解释他为什么这样做,而不是---> id='$_SESSION['user_id']";

id='"'.$_SESSION['user_id']."'";

function getuserfield($field){
$query = "SELECT $field FROM users WHERE id='".$_SESSION['user_id']."'";
$query_run = mysql_query($query);

if($query_run){
    return mysql_result($query_run, 0, $field);
}
}

1 个答案:

答案 0 :(得分:0)

对于将变量插入到sql查询中有很多话要说,但对于初学者来说只是语法:

在PHP中,您可以对字符串使用单引号或双引号,但单引号内没有变量替换。

在SQL中,字符串必须用单引号括起来,结果必须类似于WHERE id='asdf'。所以在示例WHERE id='".$_SESSION['user_id']."'"中,在等号之后有单引号,然后是字符串结尾,然后是字符串连接,然后是变量,字符串连接,字符串开始,关闭单引号 - 它是正确的。

您的id='$_SESSION['user_id']";有不均衡的单引号和双引号。

更好的方法是:使用像PDO,预处理语句和绑定变量这样的东西。

还有一句话:在数据库中,id列通常是整数类型,这需要一个不同的解决方案。