我是 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);
}
}
最佳答案
关于将变量插入 SQL 查询有很多话要说,但对于初学者来说,只需语法:
在 PHP 中,您可以对字符串使用单引号或双引号,但单引号内不能进行变量替换。
在 SQL 中,字符串必须用单引号括起来,结果必须类似于 WHERE id='asdf'
。因此,在示例中 WHERE id='".$_SESSION['user_id']."'"
等号后面有单引号,然后是字符串结尾,然后是字符串连接,然后是变量、字符串连接、字符串开头、结束单引号 - 这是正确的。
您的 id='$_SESSION['user_id']";
单引号和双引号不平衡。
更好的办法是:使用 PDO、准备好的语句和绑定(bind)变量之类的东西。
还有一点:在数据库中,id 列通常是整数类型,这需要不同的解决方案。
关于php - 通过函数传递数据库字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661999/