0
$query = $db->query("SELECT * FROM files WHERE hash = '" . $file . "'");
while($result = $query->fetch_array()) {
  $result[0] = $result['uploadr'];
  $result[1] = $result['name'];
}

これはクエリとフェッチ配列のコードですが、nullを返します。何か案は?ちなみに、私は「$result[0]」と「$result['uploadr'];」の両方を使用して結果を取得しようとしています。これで何か助けはありますか?

4

1 に答える 1

-2

アレイを再割り当てしないでください。次のように使用$result= query->fetch_assoc()して取得するだけです。

$upload = $result['uploadr'];
echo $upload;

攻撃に対して確実なクエリを作成するには、準備されたステートメントを使用する必要があります。

 $query = "SELECT * FROM files WHERE hash = ?"
if (!$stmt = $db->prepare($query))
    {
        echo "Prepared Failed: (" . $db->errno . ") " . $db->error;
    }
    if (!$stmt->bind_param("s", $file))
        {
            echo "Bind Failed: (" . $db->errno . ") " . $db->error;
        }
        if (!$stmt->execute())
            {
                echo "Execution Failed: (" . $db->errno . ") " . $db->error;
            }
            if (!$results = $stmt->get_results())
                {
                    echo "No Results where found: (" . $db->errno . ") " . $db->error;
                }
                while($row = $results->fetch_assoc())
                {
                    $upload = $row['uploadr'];
                    $name = $row['name'];
                    echo $upload."<br>";
                    echo $name;
                }
        $stmt -> close();
        $db -> close();
于 2013-01-03T00:54:12.100 に答える