2011-07-17 9 views
5

YİNELENEN KEY UPDATE ... Böyle INSERT olarak table INTO, bir SQL deyimi yürütme ... Ben mysql_affected_rows güvenmek () belirlemek üzere. http://dev.mysql.com/doc/refman/5.1/en/mysql-affected-rows.html mysql site olarak belirtir: satır yeni bir satır olarak eklenen ve 2 varolan satır halinde ise YİNELENEN KEY UPDATE ifadeleri ... ON INSERT içinmysql_affected_rows() -1 döndürür

, etkilenen-satırlar değer 1'dir Güncellendi. birçok sorgular şimdi mysql_affected_rows vardı MySQL 5.1.16,() eksi bir (-1)

http://dev.mysql.com/doc/refman/5.1/en/mysql-store-result.html üzerinde MySQL sitesinde önerilen çözüm aramak olduğunu dönen yükseltilmiş kadar bütün Tamam çalışıyordu

select sorgusunda mysql_query() işlevinin her çalıştırılmasından sonra mysql_store_result() işlevi. Ancak, PHP'nin böyle bir işlevi tanımlanmış gibi görünmüyor.

PHP ve MySQL 5.1.16 kullanarak düzgün çalışmak için mysql_affected_rows() nasıl alabilirim? Son sorgu başarısız olursa -1 değerini döndürür.

+0

Hazırladığınız ifadeleri kullanıyor musunuz? Bu arada, PHP store_result işlevine sahiptir - http://php.net/manual/en/mysqli.store-result.php, ancak INSERT'lerden sonra değil SELECTs sonra store_result çağrılır. * -1, sorgunun bir hata döndürdüğünü veya SELECT sorgusu için mysql_affected_rows() çağrısının mysql_store_result() * –

+0

numaralı telefonu çağırmadan önce çağrıldığını gösterir ... –

cevap

2

mysql_affected_rows. Sorgularınızı ve/veya veritabanı bağlantınızı kontrol ederim. Bakınız this link.

4

Genel olarak, mysql_affected_rows() -1 döndürürse, sorgu başarısız oldu demektir (daha fazla bilgi için bkz. manual page). mysql_error() numaralı telefonu arayarak hatanın ne olduğunu kontrol edebilirsiniz, ancak kaç satırın etkilendiğini öğrenmek için mysql_query() numaralı telefonu çağırdığınızda hatayı almanız gerekir.

PHP'nin MySQL modülü store_result işleve sahip olmayabilir, ama daha yeni MySQLi modül yapar:

Eğer store_result işlevi hakkında soruyorsun beri beni de sorunuzun o kısmını cevap verelim. http://php.net/manual/en/mysqli.store-result.php

Bkz Genellikle zaten eşdeğer mysqli_xxx işlevlerine mysql_xxx işlevlerini kullanarak geçiş önerilir, böylece bunu yapmak için bu mükemmel bir fırsat olacaktır.

MySQLi modülü PHP 5.0 ile tanıtıldığından, bunun için PHP sürümünüzü yükseltmeniz gerekmez. Ancak yine de bir yükseltmeyi düşünmenizi öneririm - PHP 5.1 kullanıyorsanız, beş yıldan fazla bir süredir desteklenmeyen bir versiyon kullanıyorsunuz.

İlgili konular