Nasıl MySQL 'satır 0 atlamak kurulamıyor' hata kaçabilir?

2 Cevap php

Benim soru var olduğunu dönmek istiyorum ben bunun nasıl bir satır emin olabilir? Her sorgu satır var veya değil öğrenmek için önce PHP'nin @ seçeneği veya sayısı, satır ile bastırmak istemiyorum.

Yani bu gibi basit bir sorgu var:

"SELECT `title`, `id` FROM `event` WHERE `id` = '234'";

ve tablo id 234 ile satır içeremez.

2 Cevap

Muhtemelen alanları almak için (), mysql_result kullanıyorsunuz. Düşünün mysql_fetch_array yerine. Almak için daha fazla satır yoksa FALSE döndürür.

<?php
$mysql = mysql_connect('..', '..', '..') or die(mysql_error());
mysql_select_db('..', $mysql) or die(mysql_error());

$query = "SELECT `title`, `id` FROM `event` WHERE `id` = '234'";
$result = mysql_query($query, $mysql) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC);

if ( !$row ) {
  echo 'no such record';
}
else {
  echo $row['title'], ' ', $row['id'];
}

Her sorgudan önce satırları saymak zorunda değilsiniz - genelde sonra bunu.

Ne bu böyle bir şey

$query = "SELECT `title`, `id` FROM `event` WHERE `id` = '234'";

$results = mysql_query($query);

if (mysql_num_rows($results)) {
    // do something because it was found
}