MYSQL güncelleştirme sorgusu php

4 Cevap php

Ben bir veritabanında tutulan değerleri değiştirmek için bir güncelleştirme sorgusu kullanmaya çalışıyorum, ben mağazada çalışıyorum yeni değerler php değişkenler tutulur. Bunu ben yanlış yapıyorum ne olduğundan emin değilim.

mysql_query("UPDATE user SET status='full' WHERE user_id = '$user_id'")or die(mysql_error());

Burada hata mesajı

1 tuşu için giriş '91317691 'yinelenen

şimdiden teşekkürler

4 Cevap

Bu eşsiz anahtar bir çoğaltma olduğu anlamına gelir. Eğer (user_id, status) benzersiz kullanarak ve status türünde enum taşımaktadır vardır varsayarak yaşıyorum durumda ki, zaten sen bir eşleşen bir girişi olan olabilir eğer güncellemeye çalışıyorum.

| user_id | status |
| 1234    | full   |
| 1234    | none   |

thats durumda eğer, şema ilanıyla yararlı olacaktır.

Lütfen User_id alan bir tamsayı gibi görünüyor. Çevresinde'' koyarak şeyler kıracak

tırnak işaretleri olmadan deneyin

mysql_query("UPDATE user SET status='full' WHERE user_id = $user_id")or die(mysql_error());

özür dilemek, sorun başka bir yerde benim php komut neden fark etti, ama ben bunu çözmüş.

Rehberliğin için teşekkürler

Ben değiştirmek gerektiğini düşünüyorum

... '"+ $ User_id +"' "...

çift ​​tırnak kapanış koymak "senin tek sonra, sonra $ user_id ekleyin, daha sonra nihai kapanış eklemek" '"(çift tırnak, tek tırnak, çift tırnak)

Eğer $ User_id değişkenin kontrolü yoksa Ayrıca, SQL enjeksiyon saldırıları için açık olabilir