2014-01-13 6 views
0

ok У меня есть функция mysqli, которая рисует статистику пользователей из базы данных. datbase устанавливается какmysqli function return no value

имя пользователя атаки силы обороны
хххх 10 10 10

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

config.php

<?php 
$dbhost = 'xxx'; 
$dbuser = 'xxx'; 
$dbpass = 'xxx'; 
$dbname = 'xxx'; 
$dberror1 = 'could not connect to database'; 
$dberror2 = 'could not find selected table'; 
?> 

stat.php

<?php 
function getLevel($stat) { 
require_once 'includes/config.php'; 

$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); 

$stmt = $mysqli->prepare("SELECT ? FROM players WHERE username = ?"); 

if($stmt) { 
$stmt->bind_param('ss', $stat, $_SESSION['username']); 
if($stmt->execute()) { 
     $stmt->bind_result($result); 
     $stmt->fetch(); 
     } 
    } 
    return $result; 
    } 

?> 

и файл им с помощью для проверки отображения функция

<?php 
include 'includes/login-check.php'; 
include 'includes/config.php'; 
include 'includes/stat.php'; 

echo getLevel('attack'); 
?> 
+0

Вы проверили ошибки в mysqli_error ($ mysqli)? –

ответ

3

Вы не можете связывать table- или имена столбцов в ваше подготовленное заявление, просто значения.

Вам нужно будет проверить значение $stat на белый список и вставить его непосредственно в оператор sql.

Кстати, вы можете указать mysqli для исключения исключений, так что вам не нужно проверять возвращаемое значение каждого вызова базы данных вручную. Просто добавьте это, прежде чем открывать подключение к базе данных:

mysqli_report(MYSQLI_REPORT_STRICT); 
+0

Объяснение о том, как это сделать, было бы неплохо im new для mysqli i jsut преобразовал это из mysql – user3078244

+0

@ user3078244 Ваш sql просто был бы '' SELECT \ '$ stat \' FROM players WHERE username =? "', Но у вас было бы чтобы убедиться, что '$ stat' безопасен в использовании, например, проверив его против белого списка разрешенных имен столбцов. – jeroen

+0

Мне нужно будет заглянуть в эту вещь в белом списке, но спасибо за информацию – user3078244