php Mysqli 未定义函数

Posted

技术标签:

【中文标题】php Mysqli 未定义函数【英文标题】:Php Mysqli Undefined Function 【发布时间】:2013-01-05 01:04:11 【问题描述】:

执行时

mysqli_bind_result();

我收到一条错误消息“调用未定义的函数”。

我的代码如下:

$mysqli = new mysqli("localhost", "root", "", "*****");
if(isset($_POST['login']))
    if($_POST['username'])
    if($_POST['password'])
    $username = $_POST['username'];
    $passwordtmp = $_POST['password'];
    $password = md5(md5($passwordtmp));
    //Connect to Database//
    if ($mysqli->connect_errno) 
            echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    
    //Check if user exist in database//
    $query = mysqli_query($mysqli,"SELECT * FROM users WHERE username = '$username'");
    $numrows = mysqli_num_rows($query);
    if($numrows == 1)
        if($stmt = mysqli_prepare($mysqli, "SELECT password FROM users WHERE username = '$username'"))
            mysqli_execute($stmt);
                    mysqli_bind_result($stmt,$passw);
                    while(mysqli_stmt_fetch($stmt))
                        $pass = $passw;  
                    

附加信息:

    我使用与我的 mysql 数据库的相同连接将此代码从另一台计算机传输到我的笔记本电脑。

        $mysqli = new mysqli("localhost", "root", "", "*****");
    

      我将确切的数据库复制到我的笔记本电脑上,我的电脑和笔记本电脑都在使用 wamp。

      我想知道这是否可能是与数据库的连接问题,或者只是编码错误。但它在我原来的电脑上完美运行,没有任何问题。

提前谢谢你。我会感谢有用的答案。

【问题讨论】:

您对 SQL 注入敞开大门。请了解如何使用参数化查询(最好使用 PDO 模块)来保护您的 Web 应用程序。 bobby-tables.com/php.html 有一些示例可以帮助您入门。 您正在混合使用 mysqli 的 OOP 使用和功能使用。虽然它可能会起作用,但您会从保持一致以帮助可读性和维护中受益。作为对@AndyLester 的评论 - mysqli 完全能够进行参数化查询,因此目前没有明显的理由切换到 PDO。 我相信我正在这样做。我已经从另一个人那里接管了这段代码,并且正在切换 【参考方案1】:

您可能正在使用 PHP > 5.4,因为函数 mysqli_bind_result 在 PHP 5.4 中已被删除。

将其更改为 mysqli_stmt_bind_result 应该可以解决您的问题。

mysqli_stmt_bind_result($stmt, $passw);

【讨论】:

以上是关于php Mysqli 未定义函数的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:调用未定义函数 mysqli_connect()

致命错误:调用未定义函数 mysqli_connect()

Codeigniter“调用未定义的函数mysqli_init()”错误

尝试将 xampp 数据库表连接到 php:错误未定义变量:mysqli_query 和致命错误

Codeigniter:对未定义函数 mysqli_init() 的致命错误调用

mysqli_query 上的未定义变量