问题标签 [bindparam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
10490 浏览

php - bind_param() 有什么作用?

我仍然有点不确定 bind_param 是做什么的。有人可以举个例子说明什么是手段吗?

0 投票
1 回答
4105 浏览

php - 是否可以将 bind_param 用于 ORDER BY?

在我的脑海中,我有一个类似这样的查询:

当我在不设置排序变量的情况下运行此代码块时,它运行时不会出现与?在 ORDER BY 子句中使用相关的错误,并且结果集显示在看似带有“ORDER BY id”的结果集中。

如果我将排序变量设置为“price ASC”之类的东西,我仍然会得到一个似乎是“ORDER BY id”而不是“ORDER BY price ASC”的结果集。

现在,如果我更改代码并像这样运行它:

它运行正确,结果集与我在 phpMyAdmin 中的查询相同。

这里到底发生了什么以及为什么查询没有按照我最初使用 bind_param 的意图运行。

在我看来,它应该可以工作,因为不会出现与此类使用相关的错误......但实际上它似乎不适用于 ORDER BY 子句。几乎就像它在运行 bind_param 时没有转换排序变量一样。

编辑:

对于任何有兴趣的人-

0 投票
1 回答
560 浏览

php - 正确使用bind_param?

我正在为一个应用程序(学校工作)登录,我正在学习如何以正确的方式使用 mysqli 类。以下是我的应用程序中的两种方法,用于检查用户输入的用户名和密码是否正确(即数据库中存在)。

我的问题是,这是否是使用 bind_param 的正确方法,或者将其用于此目的是否可能是“矫枉过正”?可以/应该以其他方式完成吗?

来自 LoginModel.php

来自 Database.php

0 投票
1 回答
354 浏览

php - PDO 绑定参数和绑定值。有什么区别?

我已经阅读了关于 PHP PDO 的手册并看到了这篇文章:PDO PARAM_STR and length

阅读那篇文章后,我了解到我们不需要在插入 DB 时指定长度,而是指定用于输出。

我的问题是,如果我不想为输出指定任何长度,我可以使用 bindvalue() 吗?也许有人可以就何时最好使用用户 bindparam 和 bindvalue 给出一个很好的建议?

提前谢谢各位。

0 投票
2 回答
17356 浏览

php - bindValue() 和 bindParam() 之间的混淆?

我对这两个功能感到Bindvalue()困惑BindParam()

  1. 我在 php.net 上看到它不会转义%_所以使用时要小心LIKE。所以我认为BindValue()当我们使用 LIKE 查询时不使用。
  2. 当我们使用LIKE查询时BindParam()。因为据我所知 BindParam 可以逃避这些%_.
  3. BindValue()不提供针对 sql 注入的保护。我不确定这是真的吗?

朋友告诉我这3点是对是错。我是 PDO 的初学者,所以请解释清楚..

0 投票
1 回答
841 浏览

php - 自定义 mysqli 准备函数

我现在正在做我的第一个自己的数据库类,目前我正在做准备功能。

这个函数的作用是接受一个 SQL 查询,然后是一个包含语句变量的数组。我在将参数绑定到语句时遇到问题。

这就是函数现在的样子

一切都按我的意愿工作(我知道这个功能可以做一些改进,但它做了它需要做的事情)。我已经评论了我无法弄清楚该怎么做的那一行。$var 是一个数组,如果我没记错的话,变量需要用逗号分开传递。这是我无能为力的地方。

0 投票
7 回答
44413 浏览

php - mysqli bind_param 用于字符串数组

我需要将一组值绑定到WHERE IN(?)子句。我怎样才能做到这一点?

这有效:

但这我无法使用这样的 bind_param :

我究竟做错了什么?

我也尝试过call_user_func_array,但似乎无法获得正确的语法。

0 投票
1 回答
133 浏览

php - 如果我直接在 bindParam (mysqli) 中使用 $_POST 值会不会有安全问题?

我一直在阅读有关在 isert 语句中直接使用 $_POST 值的信息,并了解这是自找麻烦。在我阅读的任何帖子中都不清楚的是 - 假设我的表单正在向我的 mysqli 插入脚本发送 7 个项目,并且我使用这样的发布值:

那是正确的方法吗?或者我应该首先将发布的值存储在一个新变量中并在绑定时使用该变量?- 像这样 :

我看到了一篇OO mysqliprepared statements help please where 答案似乎和上面的代码一样,但我想知道像第一个代码那样做是否会带来安全问题......

0 投票
1 回答
6151 浏览

php - 将多个参数绑定到mysqli查询中

现在我需要使用以下结构来处理将多个参数绑定到 mysqli 查询中:

我使用下面的代码计算出问号的数量并将其插入到我的查询中:

我的问题是肯定有一种方法可以动态处理我需要的查询中的尽可能多的输入。硬编码bind_param()似乎是一种非常糟糕的处理方式。

我正在使用 php 版本 5.4.10

0 投票
2 回答
20879 浏览

php - bind_param 完成了什么?

我正在学习如何避免 SQL 注入,我有点困惑。

使用 bind_param 时,我不明白目的。在手册页上,我找到了这个例子:

现在,假设这 4 个变量是用户输入的,我不明白这如何防止 SQL 注入。据我了解,他们仍然可以在其中输入任何他们想要的内容。

我也找不到'sssd'那里的解释。它有什么作用?这就是让它更安全的原因吗?

最后一个问题:我阅读了另一个mysqli_real_escape_string已弃用的问题,但手册中并没有这么说。它是如何被弃用的?由于某种原因,它不能再转义特殊字符了吗?

注意:这个问题解释了 bind_param 的作用,但我仍然不明白为什么它更安全或更受保护。 Bind_param 解释