2013-06-04 134 views
0

我正在創建一個評分系統,我需要一些幫助。動態插入表名中的數據

我正在創建一個註冊表單,我已經設法將用戶詳細信息插入到「用戶」表中,但我也想將用戶標識和用戶名插入到組表中。

例如:

$sql = ("INSERT INTO `users`(`username`, `password`, `email`, `group`, `ip`, `signup`, `lastlogin`) VALUES ('$username','$email','$password','$group','$ip',now(),now())"); 
     $query = mysqli_query($db_conx, $sql); 
     $uid = mysqli_insert_id($db_conx); 
     // Establish their row in the group table 
     $sql = ("INSERT INTO '.$group.'(id, username) VALUES ('$uid','$username')"); 
     $query = mysqli_query($db_conx, $sql); 

     exit(); 

我不知道我怎樣才能把一個動態變量($組)作爲表名,然後在正確的組表插入數據。

如果任何人有建議或現在如何實現這一點,任何反饋將不勝感激。

+1

Psssst ... mysqli是一個很好的步驟,但你必須使用預準備語句:http://stackoverflow.com/questions/9629328/how-to-use-mysqli-prepared-statements-in-php –

+0

我想你應先創建'group'表,然後嘗試將數據插入到該表中。 –

+0

@ Pier-LucGendreau非常感謝!我現在將使用準備好的語句!對於任何喜歡它的人來說,一個好的視頻就是http://youtu.be/jSo0UDlATbw,它可以幫助我理解。 –

回答

0

你的意思是這樣的嗎?

"INSERT INTO '$table' (username,password) VALUES ('$username','$password')" 

雖然,我建議您使用預處理語句。 http://php.net/manual/en/pdo.prepared-statements.php

+0

這些應該是在$ table周圍反轉。我還假設$ group是表的名稱。 –

+0

事實上,根本沒有必要添加蜱。我只是用它們來組織代碼更好一點,所以很容易理解。事實上,在他的情況下,$ table將是$ group,但這又是一個僅供參考的簡單示例。 –

+0

嘿,謝謝你的建議。我的問題是,我有$ group = preg_replace('#[^ a-z]#','',$ _POST ['g']);但我需要$ group = preg_replace('#[^ a-z0-9]#','',$ _POST ['g']);它現在以滿意的方式工作。謝謝您的幫助。 –

1
"INSERT INTO '.$group.'(id, username) VALUES ('$uid','$username')" 

你與周圍的點和撇號$組 - 撇號不分裂的字符串。

"INSERT INTO `$group` (id, username) VALUES ('$uid','$username')" 

- 注意反標記。

0

首先創建表,你要的名稱

$sql = ("CREATE TABLE `".$group."` (id,username);"); 
$query = mysqli_query($db_conx, $sql); 

$sql = ("INSERT INTO `".$group."` (id, username) VALUES ('".$uid."','".$username."')"); 
$query = mysqli_query($db_conx, $sql); 

希望這將幫助你!

0

這可行。 ('$ uid','$ username')「);} $ {$}