php mysqlden veri çekme sorunu
Merhabalar veritabanından veri çekerken where ile koşullandırıyorum
bu koşullandırma yı şu şekilde yapıyorum
$item_controls = $db->prepare("SELECT * FROM mc_user_items where user_item_user_id = '{$session_user_id}' and user_item_item_id = '{$trade_id}'");
sistem kontrol ederken veritabanında olmasına ragmen bulamıyor
bende $session_id ve $trade_id yi silip elle tırnak olmadan yazdıgımda sistem buluyor
sorun kesinlikle session_id ve trade_id'nin değişken tipinde olmalı bunun onune nasıl gecebilirim
user_item_user_id = '{}' bu parantezleri denedim
parantezsiz denedim
tırnaksız denedım hiç birisi olmadı fikri olan varsa lütfen belirtsin
trade_id post ile çekiyorum
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Sorguyu çift tırnak içine yazdığınız için normal koşullarda aşağıdaki gibi değişkeni sorgu içerisinde kullanabilirsiniz. id olduklarından dolayı bunların int tipinde olduklarını düşünüyorum.
$item_controls = $db->prepare("SELECT * FROM mc_user_items where user_item_user_id = $session_user_id and user_item_item_id = $trade_id");
Olmazsa daha kesin bir şekilde yapalım.
Veri tabanındaki tablonun user_item_user_id
ve user_item_item_id
sütunlarının tiplerinin INT
olduğundan emin olun. Sonra değişkenleri de type casting ile integer a çevirelim.
$session_user_id = (int) $session_user_id;
$trade_id = (int) $trade_id;
Sonra yukarıdaki sorguyu yazdığınızda çalışması beklenir.