帮助准备好的陈述

发布于 2024-10-11 00:51:25 字数 575 浏览 1 评论 0原文

大家好,我最近听说准备好的语句是保护我的网站免受 mysql 注入等攻击的最佳方法。所以我有一个问题,我似乎无法理解为什么这不起作用:

$mysqli=new mysqli("localhost", "***", "***","***") or die(mysql_error());


              function checklogin($username, $password){


                $result = $mysqli->prepare("SELECT * FROM users WHERE username = ?");
                $result->bind_param("s", $username);
                $result->execute();

我收到以下错误: 注意:未定义的变量:mysqli in /var/www/JMToday/loginchk.php on line 45 Fatal error: Call to /var/www/JMToday/loginchk.php 第 45 行中非对象上的成员函数prepare()

Hey guys, I have recently heard that prepared statements are the best way to secure my website from mysql injections and what not. So I have a question, I can't seem to understand why this does not work:

$mysqli=new mysqli("localhost", "***", "***","***") or die(mysql_error());


              function checklogin($username, $password){


                $result = $mysqli->prepare("SELECT * FROM users WHERE username = ?");
                $result->bind_param("s", $username);
                $result->execute();

I get the following error: Notice: Undefined variable: mysqli in /var/www/JMToday/loginchk.php on line 45 Fatal error: Call to a member function prepare() on a non-object in /var/www/JMToday/loginchk.php on line 45

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷鸟归林 2024-10-18 00:51:26

您正在尝试在函数中使用全局变量 ($mysqli)。 (在这种情况下,错误消息“未定义的变量”非常有洞察力。)

您需要:

  1. 将该变量声明为全局变量。 (即:添加“global $mysqli;”作为 checklogin 函数中的第一行。)

  2. 将 $mysqli 的定义移至 checklogin 函数中。

作为一般建议,我建议阅读 变量范围 部分。

You're attempting to use a global variable ($mysqli) within a function. (The error message "undefined variable" is incredibly insightful in this instance.)

You either need to:

  1. Declare the variable as a global. (i.e.: Add "global $mysqli;" as the first line within your checklogin function.)

  2. Move the definition of $mysqli to within the checklogin function.

As a general bit of advice, I'd recommend reading the variable scope section of the PHP manual.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文