2016-08-21 9 views
-1

このコードは空白のWebページを表示します。何か問題はありますか?ログインしているユーザーの合計ポイントを表示することになっています。現在のユーザーの名前である行の合計を取得します

<?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

を参照してください?もしそうなら、あなたはそれを変更することを強くお勧めします。 – Mike

+1

'transaction'は予約語なので、backtiqueを使ってエスケープします。 – Rahul

+1

原則として、PHPが空白のページを表示するのは、PHPエラー報告(http://php.net/manual/en/function.error-reporting.php)が非表示に設定されているためです。発生した特定のPHPエラーのログを見てください。 –

答えて

0
  1. あなたはこの

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

  2. transactionのようなのerror_reportingは、MySQLのキーワードで有効にする必要があります。だからバックティック( `)を使用してください。

  3. 直接代入値を使用する代わりに、以下の方法を使用してSQLインジェクションを回避できます。

    (MySQLの)MySQLiのを使用して

$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 
} 

あなたは `transaction`という名前のテーブルを持っているHow can I prevent SQL-injection in PHP?

関連する問題