2
Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in selectПолучение возвращаемого значения из функции MySQL в PHP
У меня есть следующая 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
Я понимаю ошибку и пытаюсь ее исправить и обходиться без успеха. Можно ли получить значение INTEGER из MySQL в PHP и как?
Или вы могли бы посоветовать мне лучший способ сделать это.
Thank!
Этот вид ошибки происходит, когда ваш запрос возврата нуль. вы пробовали свой запрос sql? – zessx
Вы пытались сбросить $ mysql_results, чтобы узнать, что вы получаете? Похоже, что, возможно, он приводит результат процедуры непосредственно в переменную, вместо того, чтобы возвращать ресурс SQL (например, вы можете запустить mysql_fetch_row on). Другая возможность, как сказал samsamX, заключается в том, что ваш запрос сломан и ничего не возвращает. – octern
Да, я повторил свою строку запроса и выполнил в MySQL IDE, все было в порядке, и я получил результат «1» – iatanasov