-2

簡単なリンクを作成しようとしています。問題は、ファイル名がデータベースから取得されることです。

例:<a href="foldername/**FileNameInSQL.zip**">Download</a>

私はMYSQLをあまり扱ったことがなく、これまでに機能しているものをつなぎ合わせました

<?php
$products_id = $_GET['id'];

mysql_connect("localhost", "username", "password") or die(mysql_error()); 

mysql_select_db("database") or die(mysql_error()); 

$sql = "select * from znc_product_extra_fields where products_id = '" . $products_id . "'"; 

$query = mysql_query($sql);

while ($row = mysql_fetch_array($query)) { 
echo $row['file_1']; 
}

?> 

実行すると、必要なことだけが実行され、その特定の行に割り当てられているファイル名(アイテム番号)がエコーされます

しかし、これをリンクに変換する方法がわかりません。私が考えることができる唯一のことは、この結果を変数に割り当てて、リンクの作成中に呼び出すことですが、正しい結果を実際に使用する方法がわかりません! このファイル名を取得してリンクに配置するにはどうすればよいですか

<a href="foldername/**FileNameInSQL.zip**">Download</a>

4

2 に答える 2

1

PHPは、テキスト、HTML、XMLなど、必要なものを何でも出力します。したがって、HTMLを出力するだけです。あなたが望むのは次のとおりだと思います:

echo "<a href=\"foldername/".$row['file_1']."\">Download</a>";

古い mysql_* 関数を使用するべきではありませんが。PDO (最良のオプション) またはmysqliを参照してください。

SQL インジェクションを防ぐには、PDO::quote (PDO を使用している場合) またはmysqli_real_escape_string (mysqli を使用している場合) を使用します。

于 2012-08-09T23:08:56.993 に答える
0

echo '<a href="/folder/' . $row['file_1'] . '">file</a>;

  • あなたのコードは MySQL インジェクションに対して脆弱です。パラメータで使用real_escape_string しますGET, POST
  • PDO を使用する必要があります (理由については teresko のコメントを参照してください)。
于 2012-08-09T23:10:24.200 に答える