【问题标题】:Retrieve return value from MySQL function inside php [duplicate]从php中的MySQL函数检索返回值[重复]
【发布时间】:2012-05-24 17:33:59
【问题描述】:

可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select

我有以下 MySQL 函数:

DELIMITER $$
DROP FUNCTION IF EXISTS DoUsernameAndPasswordMatch$$
CREATE FUNCTION DoUsernameAndPasswordMatch(
    UserLogin VARCHAR(20),
    UserPass VARCHAR(20)
)
RETURNS BOOLEAN
BEGIN
DECLARE userCount BOOLEAN;

    SELECT COUNT(*) INTO userCount
    FROM Users_Login 
    WHERE Users_Login.UserLogin = UserLogin AND Users_Login.UserPass = SHA1(UserPass);

    RETURN userCount;    
END$$
DELIMITER ;

我像这样从 PHP 调用它:

$username_escaped = escapeMySQLParam($_POST["user"]);
$userpass_escaped = escapeMySQLParam($_POST["pass"]);

$mysql_query = "SELECT DoUsernameAndPasswordMatch('$username_escaped', '$userpass_escaped')";
$mysql_results = mysql_query($mysql_query);
$mysql_row = mysql_fetch_row($mysql_results);

但我收到以下错误:

Warning: mysql_fetch_row() expects parameter 1 to be resource, 
boolean given in D:\xampp\webdesktop\login.php on line 22

我了解错误并尝试修复它并解决它但没有成功。 是否可以在 PHP 中从 MySQL 中检索 INTEGER 值以及如何检索?

或者你能告诉我更好的方法吗?

谢谢!

【问题讨论】:

  • 当您的请求返回 null 时会发生这种错误。你试过你的sql请求了吗?
  • 你试过转储 $mysql_results 看看你得到了什么?听起来可能是将过程的结果直接放入变量中,而不是返回 SQL 资源(您可以在其上运行 mysql_fetch_row 的那种东西)。正如 samsamX 所说,另一种可能性是您的查询已损坏并且没有返回任何内容。
  • 是的,我回显了我的请求字符串并在 MySQL IDE 中执行,一切正常,结果为“1”
  • 也尝试转储 $mysql_results 值但没有显示,很奇怪...
  • 是否也检查了 username_escaped 和 userpass_escaped ?

标签: php mysql function integer


【解决方案1】:

进行以下更改以使其生效:

    DELIMITER $$
DROP FUNCTION IF EXISTS DoUsernameAndPasswordMatch$$
CREATE FUNCTION DoUsernameAndPasswordMatch(
    UserLogin VARCHAR(20),
    UserPass VARCHAR(20)
) RETURNS TEXT
BEGIN
DECLARE userCount TEXT;

    SELECT COUNT(*) INTO userCount
    FROM Users_Login 
    WHERE Users_Login.UserLogin = UserLogin AND Users_Login.UserPass = SHA1(UserPass);

    RETURN userCount;    
END$$
DELIMITER ;

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 2021-04-21
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2021-07-29
    • 2019-05-23
    • 2021-07-02
    相关资源
    最近更新 更多