mysql_query () başarısız olursa, ne yapmalı?

9 Cevap php

Bazen öylesine mysql_query () verileri INSERT ve bundan habersiz başarısız olur. Yani, soru ne zaman olur nasıl biliyor musunuz nedir?

9 Cevap

Sen php.net/mysql_error daha iyi bir açıklama olsun sonra ekran ya da bir dosyaya giriş ya. Mysql_error için kullanabilirsiniz

arızası tespit ve yerde sorguyu artı mysql_error günlükleri mysql_query için bir sarıcı yapmanızı öneririz

Eğer mantıklı bir istemci kitaplığı kullanılarak ediyorsanız, bir SQL komutu başarısız olduğunda bir istisna olacak ve ne yapacağını bilmek programlı hata kodunu inceleyebilirsiniz.

Bu belirli bir hata yolu işleme herhangi bir kod varsa, muhtemelen hata, yığın izlemesi ve bir günlüğüne diğer bazı hata ayıklama bilgisi günlükleri bir standart hata işleyicisi çalışmalıdır.

Eğer SQL analiz var. Eğer parametreleri kaçtın? Bu sorun olabilir gibi geliyor. Biz size yardımcı olabilir böylece sql yapıştırın olabilir.

hatayı göstermek için, size örneğin yapabilirsiniz.

$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());

.

Hatanın nedeni kilitlenme ise, tekrar denemek isteyebilirsiniz.

Ben genellikle yapmak Bir çek örnekteki gibi

$result = mysql_query( $query );
if ( !empty( $error = mysql_error() ) )
{
    echo 'Mysql error '. $error ."<br />\n";
}
else
{
    // the query ran successfully
}

Bu sorguları her türlü için iyi bir kontroldür

MySQL takılı kaç satır kontrol edebilirsiniz / / güncellendi sağ ekleme / güncelleme / silme sorgusu sonra bu sorguyu yaparak silindi.

SELECT ROW_COUNT() as rows_affected

Bu dönerse 0 sizin ekleme başarısız oldu. O 1 veya daha fazla dönerse başarılı ettik.

Bkz: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_row-count

Muhtemelen LAST_INSERT_ID () (PHP mysql_insert_id ()) kontrol edebilirsiniz. Tablo sütun AUTO_INCREMENT şartıyla.