Я боролся с этим некоторое время сейчас. Я просто не могу вернуть ни одного значения. Я могу вернуть массивы просто отлично.
Но не единственное значение. У меня есть база данных только с тремя столбцами, 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, несмотря ни на что.
Я надеюсь, что кто-то может найти время и сказать мне, что я делаю неправильно.
Заранее спасибо.
Читать документация:
Замечания:
Обратите внимание, что все столбцы должны быть связаны после 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 */ }
}
Вы можете использовать эту функцию для получения значения. Это функция PHP. Вы просто вызываете его с помощью запроса, который имеет запрос с одним возвращаемым значением.
function value_return($query){
$result= mysql_query($query);
$value=mysql_result($result,0);
return $value;
}