MySQL Güncelleme sorunu

3 Cevap php
$result=mysql_query(" UPDATE xxxxxx_users SET User_Password='$Password' WHERE FstName='$First' AND LstName='$Last'",$db)  or die ("Password update successful!");
echo "Update failed, unknown user";

Ilk ve son adları maç ve ne zaman onlar değil db etkilenmez Bu doğru db günceller. Benim tek sorun ben hep Update, bilinmeyen kullanıcı mesaj başarısız göstermek olduğunu. Ben ne yanlış yaptım? Teşekkürler.

3 Cevap

Bir SQL sorgusu başarılı olduğunda mysql_query function true döndürür:

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

Sizin kod sorgu etkilenen satır sayısını döndürür üstleniyor. Bu amaç için mysql_affected_rows işlevini kullanın:

$result=mysql_query(" UPDATE xxxxxx_users SET User_Password='$Password' WHERE FstName='$First' AND LstName='$Last'",$db)
if (mysql_affected_rows() > 0)
  die ("Password update successful!");
else
  echo "Update failed, unknown user";

Muhtemelen yuvarlak bu diğer şekilde yapmak gerekiyor ...

$result=mysql_query(" UPDATE xxxxxx_users SET User_Password='$Password' WHERE FstName='$First' AND LstName='$Last'",$db)
     or die ("Update failed, unknown user"); 

echo "Password update successful!";

Ilk bölümü (mysql_query) true olarak değerlendirilirse, ikinci ya da bir kısmı (kalıp) değerlendirmek için gerek yoktur. Bunun yerine kullanabilirsiniz.

Ve, SQL Enjeksiyon hakkında okuyun lütfen.

Kodlama tarzı için bir öneri:

Böyle bir şey:

if ($result)
   ...success
else 
   ...fail

çok daha okunabilir.