MySQL verilerini PHP tabloları kullanarak birden çok tabloya eklemek için uğraşıyorum.mySQL INSERT PHP tablolarını kullanarak birden fazla tabloya
İki tablo var:
kullanıcı
USER_ID (PK)
first_name
last_name
eposta
şifre
profil
PROFILE_ID (PK)
USER_ID (FK)
profile_image
profile_image_name
Ben güncellemek kullanıcı tablosu şöyle:
$sql = "INSERT INTO user (first_name, last_name, email, password)
VALUES
('$_POST[first_name]', '$_POST[last_name]', '$_POST[email]', '$_POST[password]')";
Kullanıcı_Kimliği, veritabanında otomatik artış olacak şekilde ayarlanır; bu nedenle, bu kod yürütüldüğünde, eklenen veriler otomatik olarak benzersiz bir PK'ye atanır ve bir oturumda depolanır. Aynı noktada (hesabı oluştururken) user_ID'yi FK olarak profil tablosuna eklemem gerekiyor. Bu şekilde kullanıcı profil resmini yüklediğinde, profil tablosunda bir kaydı olacak şekilde atanacaktır. Örneğin
, ben bu kodu kullanıyorum görüntü yükleme sayfasında:
$user_ID = $_SESSION['login'];
$ins1 = mysqli_query($db, "UPDATE profile SET `profile_image_name`='" . $profile_image_name . "' WHERE `user_ID`='$user_ID'");
$ins2 = mysqli_query($db, "UPDATE profile SET `profile_image`='" . $profile_image . "' WHERE `user_ID`='$user_ID'");
USER_ID FK zaten php ifadeleri kullanarak takın nasıl bu kadar profil tablosunda varsa bu kod çalışır Daha önce yaptığım gibi mi? Yine ilk yaklaşım kullanmayı denediler ama
** UYARI **: Eğer parametreli sorguları kullanarak ve gerektiği mysqli' 'kullanan [' bind_param'] (http: // php .net/manual/tr/mysqli-stmt.bind-param.php) sorgunuza kullanıcı verilerini eklemek için. ** Şiddetli [SQL enjeksiyon hataları] (http://bobby-tables.com/) oluşturacağınız için bunu gerçekleştirmek için dize enterpolasyonu veya birleştirme kullanmayın. ** ASLA ** bir sorguya doğrudan '$ _POST' veri koydu. – tadman
** UYARI **: Kendi erişim kontrol katmanınızı yazmak kolay değildir ve ciddi şekilde yanlış bir şekilde ele alınması için birçok fırsat vardır. Bu kısa örnekte, bir dizi tehlikeli [SQL Injection zafiyetleri] (http://bobby-tables.com/) var ve dikkatsizce [uygun kaçış] eksikliğinden geliyorsunuz (http://bobby-tables.com/php) . Herhangi bir modern [geliştirme çerçevesi] (http://codegeekz.com/best-php-frameworks-for-developers/) [Laravel] (http://laravel.com/) gibi durumlarda lütfen kendi kimlik doğrulama sisteminizi yazmayın. yerleşik bir [kimlik doğrulama sistemi] (https://laravel.com/docs/5.2/authentication) ile birlikte gelir. – tadman