php - 通过函数传递数据库字段

标签 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);
}
}

最佳答案

关于将变量插入 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/

相关文章:

mysql - 使用mySQL创建预订汇总-连接多个表,计算多个字段

php - SQL计算行数

mysql - vb.net datagridview过滤列未运行

email - PHP 邮件脚本,电子邮件未发送

php - 无法在页面上显示除索引之外的帖子

javascript - 页面加载触发函数,javascript

javascript - 现在正在将 localhost 上传到在线版本。这不起作用

php - 处理 JSON 数据获取的最理想方式

php - Paypal IPN - 交易超时

php - 如果关闭浏览器,PHP 代码还会继续运行吗?