2015-06-08 9 views
0

У меня есть этот небольшой фрагмент кода.mysqli bind_param не возвращает правильные данные, но правильный запрос

echo $token; 

$selstmt=$conn->Prepare("SELECT UserID FROM USER WHERE Token LIKE ?"); 
$selstmt->bind_param('s', $token); 
echo $token; 
$selstmt->execute(); 
$selstmt->store_result(); 
$selstmt->bind_result($userid); 
$selstmt->fetch(); 
echo $userid; 
$selstmt->close(); 

Если я удаляю bind_param и непосредственно вставляю значение в оператор подготовки, запрос работает нормально. Я повторяю значение токена дважды, чтобы проверить, изменилось ли значение, но $ токен тот же, и значение есть. Так почему же это не работает?

ответ

0

Это может работать для вас, если вы включите % знаки

$sql = 'SELECT UserID FROM USER WHERE Token LIKE ?'; 
$stmt = $conn->prepare($sql); 
$stmt->execute(array("%$token%")); 
#$result = $stmt->fetch();