まず第一に、mysqli_connectは非推奨の mysqli 関数に含まれるようになりました! つまり、代わりにオブジェクト指向バージョンを使用することをお勧めします!
これを行う方法の例を次に示します。
$link = new mysqli ("kennyist.com","user","pass","table");
/*
if id is a string then go for this version
$id = $link->real_escape_string($_GET['id']);
*/
$id = intval($_GET['id']); // if id is integer, this is better
if ( $link->errno )
{
echo "Failed to connect to MySQL: {$link->error}";
}
$result = $link->query("SELECT * FROM `wp_wpfb_files` WHERE `file_id` = $id");
if ( $result->num_rows ) $row = $result->fetch_assoc();
$link->close();
プリペアド ステートメントを使用するのがさらに良いでしょうが、それらに慣れていないと、最初は少し難しいかもしれません。とにかく、これで要求通りのことができるようになりました!
<div class="version">
<?php echo "download.php?id=27{$row['file_version']}"; ?>
</div>
エラーの発生を防ぐために、エコーアウトしようとしているものは、まだいくつかのことが真実である必要があります。
file_version
テーブル内の列である必要があります
$_GET['id']
適切な$id
- 対応するテーブルにレコードが存在する必要があります
file_id
知らせ
echo "download.php?id=27{$row['file_version']}";
id
どのページでも常に同じように出力されます。おそらく必要なのは、権利file_id
を download.php ページに転送することです! あなたは次のようなものでこれを行います:
echo "download.php?id={$row['file_id']}&version={$row['file_version']}";
ヒント
mysqli_fetch_arrayは、デフォルトでインデックスと連想の両方の配列をフェッチします。インデックス付きの配列が必要ない場合は、代わりにmysqli_fetch_assocを使用してください。
mysqli_fetch_arrayフェッチされた行に対応する配列を返すか、結果パラメーターによって表される結果セットにそれ以上行がない場合は NULL を返します。
mysqli_fetch_assocフェッチされた行に対応する連想配列を返すか、それ以上行がない場合は NULL を返します。
お役に立てれば!