seçmek ve PHP kullanarak db mysql tek bir alan echo

5 Cevap php

Im belirli bir satırdan başlık sütunu seçmek için çalışıyor

$eventid = $_GET['id'];
$field = $_GET['field'];
$result = mysql_query("SELECT $field FROM `events` WHERE `id` = '$eventid' ");
echo $result;

i olsun hepsi Resource id #19

I bu nasıl yapmalıyım? En iyi yöntemi nedir?

5 Cevap

$eventid = $_GET['id'];
$field = $_GET['field'];
$result = mysql_query("SELECT $field FROM `events` WHERE `id` = '$eventid' ");
$row = mysql_fetch_array($result);
echo $row[$field];

Eğer doğrudan sorguda $ _GET kullanıyorsanız neden ama sql enjeksiyon sakının. Tanımlayıcıları kaçmak için hiçbir veritabanı işlevi var çünkü enjeksiyon tehlikesi özellikle kötü. Bunun yerine, beyaz liste yoluyla alanını geçmesi gerekiyor veya (daha iyisi) sütun adı daha dışarıdan farklı bir ad kullanın ve sütun adları dış adları haritası. Geçersiz dış isimleri bir hata neden olur.

Bu deneyin:

echo mysql_result($result, 0);

Eğer sadece tek bir satır tek bir alan getiriliyor çünkü bu yeterlidir.

PHP6 artık sizin için yapmayacağım yana Ve mysql_real_escape_string ile değerlerini kaçış! :)

Kılavuzunu okuyun, bunu çok iyi kapsar: http://php.net/manual/en/function.mysql-query.php

Genellikle böyle bir şey yapın:

while ($row = mysql_fetch_assoc($result)) {
  echo $row['firstname'];
  echo $row['lastname'];
  echo $row['address'];
  echo $row['age'];
}

Sen tek bir kod satırı ile bunu yapabilirsiniz

echo array_values(mysqli_fetch_array($mysqli->query("SELECT name FROM user WHERE id='$userid'")))[0];

Bu kullanmadan önce, aşağıda gösterildiği gibi veritabanına bağlanmanız gerekir

 $mysqli = new mysqli('HOST', 'USERNAME', 'PASSWORD', 'DATABASE');