2016-08-21 3 views
-1

Этот код просто отображает пустую веб-страницу. Что-то не так с этим? Предполагается показать общие точки, которые имеет зарегистрированный пользователь.Получите сумму строки, где имя пользователя является текущим именем пользователя

<?php 

session_start(); 

$servername = "localhost"; 
$username = "root"; 
$password = "randompassword"; 
$dbname = "transactions"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$query = "SELECT sum(points) AS points FROM transaction WHERE username = '".mysqli_real_escape_string($conn,$_SESSION['username'])."'"; 
$result = mysqli_query($conn, $query); 
$row = mysqli_fetch_assoc($result); 

print($row) 
?> 
+1

у вас есть таблица с именем 'transaction'? Если это так, я настоятельно рекомендую вам это изменить. – Mike

+1

'transaction' является зарезервированным словом, поэтому избегайте его использованием backtique. – Rahul

+1

Как правило, когда PHP показывает вам пустую страницу, это связано с тем, что отчет об ошибках PHP (http://php.net/manual/en/function.error-reporting.php) установлен, чтобы скрыть его. Посмотрите на свои журналы для конкретной ошибки PHP. –

ответ

0
  1. Вы должны включить error_reporting как этот

    error_reporting(E_ALL); ini_set("display_errors", 1);

  2. transaction это ключевое слово в MySQL. Поэтому используйте обратный тик (`).

  3. Вместо использования значений прямой подстановки вы можете использовать методы ниже, чтобы избежать внедрения sql.

Использование MySQLi (для MySQL):

$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); 
$stmt->bind_param('s', $name); 

$stmt->execute(); 

$result = $stmt->get_result(); 
while ($row = $result->fetch_assoc()) { 
    // do something with $row 
} 

Пожалуйста, обратитесь How can I prevent SQL-injection in PHP?

Смежные вопросы