我很努力地使用PHP語句將mySQL數據插入到多個表中。mySQL使用PHP語句插入多個表
我有兩個表:
用戶
USER_ID(PK)
FIRST_NAME
姓氏
電子郵件
密碼
輪廓
配置文件ID(PK)
USER_ID(FK)
profile_image
profile_image_name
我更新用戶表如下所示:
$sql = "INSERT INTO user (first_name, last_name, email, password)
VALUES
('$_POST[first_name]', '$_POST[last_name]', '$_POST[email]', '$_POST[password]')";
user_ID設置爲在數據庫中自動遞增,因此執行此代碼時,插入的數據會自動分配給唯一的PK,並存儲在會話中。在這個同樣的點(雖然創建帳戶),我需要將user_ID作爲FK插入到配置文件表中。這樣當用戶上傳他們的個人資料圖片時,它將被分配給他們將在個人資料表中有記錄。
例如,圖像上傳頁面上的我正在使用此代碼:
$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已經出現在配置表讓我怎麼插入使用PHP語句像我之前做的那個?我試圖再次使用第一種方法,但它似乎沒有工作...
** WARNING **:當使用'mysqli'你應該使用參數化查詢,而['bind_param'(HTTP:// PHP .net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您將創建嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **絕不**將'$ _POST'數據直接放入查詢中。 – tadman
**警告**:編寫自己的訪問控制層並不容易,並且有很多機會使其嚴重錯誤。在這個簡短的例子中,你有一些危險的[SQL注入漏洞](http://bobby-tables.com/)來自於[正確轉義](http://bobby-tables.com/php) 。請不要在[Laravel](http://laravel.com/)等任何現代開發框架(http://codegeekz.com/best-php-frameworks-for-developers/)上編寫自己的認證系統,內置了強大的[認證系統](https://laravel.com/docs/5.2/authentication)。 – tadman