我是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);
}
}
答案 0 :(得分:0)
对于将变量插入到sql查询中有很多话要说,但对于初学者来说只是语法:
在PHP中,您可以对字符串使用单引号或双引号,但单引号内没有变量替换。
在SQL中,字符串必须用单引号括起来,结果必须类似于WHERE id='asdf'
。所以在示例WHERE id='".$_SESSION['user_id']."'"
中,在等号之后有单引号,然后是字符串结尾,然后是字符串连接,然后是变量,字符串连接,字符串开始,关闭单引号 - 它是正确的。
您的id='$_SESSION['user_id']";
有不均衡的单引号和双引号。
更好的方法是:使用像PDO,预处理语句和绑定变量这样的东西。
还有一句话:在数据库中,id列通常是整数类型,这需要一个不同的解决方案。