Php 通过函数传递数据库字段

Php 通过函数传递数据库字段,php,mysql,Php,Mysql,我是一名PHP初学者,通过观看视频学习基本PHP。我们正在创建一个表单。我了解正在发生的一切,除了以下几点。有人能给我解释一下他为什么这样做,而不是-->id='$\u SESSION['user\u id'] 在sql查询中插入变量有很多话要说,但对于初学者来说,语法就是: 在PHP中,可以对字符串使用单引号或双引号,但单引号内没有变量替换 在SQL中,字符串必须用单引号括起来,结果必须类似于WHERE id='asdf'。因此,在id='.$\u SESSION['user\u id'].'

我是一名PHP初学者,通过观看视频学习基本PHP。我们正在创建一个表单。我了解正在发生的一切,除了以下几点。有人能给我解释一下他为什么这样做,而不是-->id='$\u SESSION['user\u id']


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

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

在SQL中,字符串必须用单引号括起来,结果必须类似于WHERE id='asdf'。因此,在id='.$\u SESSION['user\u id'].'的示例中,在等号后面有一个单引号,然后是字符串结尾,然后是字符串连接,然后是变量,字符串连接,字符串开始,结束单引号-这是正确的

您的id=“$”会话[“用户id”];有不平衡的单引号和双引号

更好的方法是:使用PDO、准备好的语句和绑定变量


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

作者选择了使用。运算符而不是变量插值。没有很好的理由去做一件或另一件事——这主要是风格的问题。请注意,id='$\u SESSION['user\u id']”虽然在双引号字符串中,但可能是一个语法错误。它需要{}括起来为id='{$\u SESSION['id']}',或者省略数组键引号为[id],而不是['id'],但是我必须指出的是,在双引号字符串中插入变量的方法——因为您正在学习,所以开始学习正确的方法很重要。mysql_*函数去年在PHP5.5中被弃用,不应用于新代码。它们最终将完全从PHP中删除。相反,现在是开始学习使用PDO和prepare/executeforprepared语句的时候了。将PDO放在不推荐使用的mysql_*函数的上下文中。查看级联和变量插值之间差异的信息。每个方面都有争论。也有一些是存在的,但你绝对不应该关心自己。谢谢你,这是非常有帮助的。我学习这种折旧方法的唯一原因是没有关于如何使用最新方法的真正好的教程。所以我想先学习简单的MYSQL来掌握它为了回答我的问题,您基本上说的是,将$\u SESSION之类的东西放入变量中是行不通的。所以我必须用{}把它括起来@Michaelberkowski数组或对象等复杂事物在引号字符串中有特殊的使用规则,通常最好使用{}。我有——PHP的错误消息是什么,以及如何解决它。
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);
}
}