Как вернуть одно значение из функции из MySQL в PHP?

Я боролся с этим некоторое время сейчас. Я просто не могу вернуть ни одного значения. Я могу вернуть массивы просто отлично.
Но не единственное значение. У меня есть база данных только с тремя столбцами, column1 — это userID, column2 — это FriendID, а column3 — это IfFriends, значение которого равно 0 или 1.

Теперь, если я сделаю следующую функцию:

function CheckFriend($id, $friendid){
global $mysqli;

$stmt = $mysqli->prepare("SELECT IfFriends FROM friends WHERE userID=?
AND friendID=?");
$stmt->bind_param("ii", $id, $friendid);
$stmt->bind_result($IfFriends);
$stmt->execute();

return $IfFriends;

Теперь я делаю это неправильно? Я попробовал SQL-запрос, и он работает, он возвращает мне 1. Однако, если я использую функцию, он возвращает мне 0.

В PHP у меня это написано так:

$ iffriends = CheckFriend ($ _ SESSION [«id»], $ _REQUEST [«friendid»]);

И когда я делаю:

echo $ iffriends

Это всегда возвращает мне 0, несмотря ни на что.

Я надеюсь, что кто-то может найти время и сказать мне, что я делаю неправильно.
Заранее спасибо.

1

Решение

Читать документация:

Замечания:

Обратите внимание, что все столбцы должны быть связаны после mysqli_stmt_execute () и
до вызова mysqli_stmt_fetch (). В зависимости от типа столбца
переменные могут молча измениться на соответствующий тип PHP.

Итак, ваш призыв к bind должен быть после execute и вам нужно будет позвонить fetch читать первый ряд.

// Parameters bound before execute
$stmt->bind_param("ii", $id, $friendid);

// Execute the statement
$stmt->execute();

// Result location bound (but this doesn't retrieve anything)
$stmt->bind_result($IfFriends);

// Fetch the first row of the result, stored into the result variable bound above
if($stmt->fetch())
{
// Make sure you check the result of fetch().
// If it returned false, no rows were returned.
// In this case, it returned true, so your value is in $IfFriends
}

// If you happened to have multiple rows, you would call fetch again
// to retrieve the next row.
if($stmt->fetch())
{
// You can continue calling fetch() until it returns false.
// Most often this is done in a loop like:
// while($stmt->fetch()) { /* Do something with the row */ }
}
2

Другие решения

Вы можете использовать эту функцию для получения значения. Это функция PHP. Вы просто вызываете его с помощью запроса, который имеет запрос с одним возвращаемым значением.

function value_return($query){

$result= mysql_query($query);
$value=mysql_result($result,0);
return $value;

}
0

По вопросам рекламы [email protected]