2012-10-22 25 views
0

我有兩個表,用戶和註釋。我需要爲用戶添加名字和姓氏,並將註釋添加到評論表中,將用戶ID作爲註釋中的外鍵。我使用phpmyadmin來添加外鍵約束和關係。在多個表中添加記錄PHP MYSQL

這是我的HTML表單:

<form action="dbconnect.php" method="post"> 
Firstname: <input type="text" name="firstname"><br /> 
Lastname: <input type="text" name="lastname"><br /> 
Comments: <textarea cols="30" rows="5" name="comments"></textarea><br /> 
<input type="submit"> 
</form> 

這是我的PHP代碼插入:

mysql_select_db("test", $db_server); 

$sql="INSERT INTO users (Firstname, Lastname) 
VALUES 
('$_POST[firstname]','$_POST[lastname]')"; 

$sql="INSERT INTO comments (Comment) 
VALUES 
('$_POST[comments]')"; 


if (!mysql_query($sql,$db_server)) 
    { 
    die('Error' . mysql_error()); 
    } 
echo "1 record added" ; 

mysql_close($db_server); 

,這是我得到的錯誤:

Error: Cannot add or update a child row: a foreign key constraint fails (test . comments , CONSTRAINT comments_ibfk_2 FOREIGN KEY (useridfk) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE)

我新的PHP和phpmyadmin所以任何幫助表示讚賞。

回答

2

首先,您需要在用戶表上運行INSERT查詢,以便創建用戶記錄。

mysql_select_db("test", $db_server); 

$sql="INSERT INTO users (Firstname, Lastname) 
VALUES 
('$_POST[firstname]','$_POST[lastname]')"; 

mysql_query($sql); 

if (!mysql_query($sql,$db_server)) 
    { 
    die('Error' . mysql_error()); 
    } 
echo "1 record added" ; 

然後,您需要檢索用戶表

$newIdQuery = mysql_query("SELECT LAST_INSERT_ID() AS userId FROM users"); 
$newId = mysql_fetch_assoc($newIdQuery); 

新創建記錄的ID然後你就可以使用該用戶id添加註釋,以正確填充用戶ID foriegn關鍵。

注意:在使用mysql_ *函數構建MySQL查詢時,如果您在{}中封裝一個php變量,它會將php變量的值插入到SQL語句中。

$sql="INSERT INTO comments (id, Comment) 
VALUES 
({$newId["userId"]}, '$_POST[comments]')"; 


if (!mysql_query($sql,$db_server)) 
    { 
    die('Error' . mysql_error()); 
    } 
echo "1 record added" ; 

mysql_close($db_server); 
+0

我知道我在這裏做錯了事。謝謝。我會馬上嘗試 – Geo

相關問題