簡體   English   中英

使用mysqli :: bind_result()從列中提取數據

[英]Extracting data from a column using mysqli::bind_result()

我的查詢在我的php代碼中返回null,但是當我在phpmyadmin中輸入相同的查詢時,它返回它所屬的行。 這是我正在使用的數據庫

CREATE TABLE `payment`.`users`(
`u_id` int(12) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`passwd` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY (`email`)
) ENGINE=MyISAM;

這是我正在使用的代碼,當它在phpmyadmin中可以正常工作時返回null。

function getUserId($email, $passwd) {
 $mysqli = db_connect();

 $query = "SELECT `u_id` FROM `payment`.`users` WHERE `email`='$email' AND `passwd`='$passwd' ORDER BY 1";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    $stmt->bind_result($u_id);

    while ($stmt->fetch()) {
        return $u_id;
    }
}

}

問題是您在php代碼中使用變量來設置值。 在phpMyAdmin中,您直接插入值,因此問題可能出在插入的值中。

首先,使用PDObindParam()mysqlibind_param()語句來清理輸入並幫助您避免SQL注入 使用准備好的語句和綁定參數的第二個好處是,您可以指定要綁定到查詢的數據的類型,這在大多數情況下可以解決此類問題。 雖然您可能正在插入字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM