2017-03-04 136 views
0

我是在php中使用mysql和變量的新手。用查詢替換變量

我有這樣的代碼

mysql_query("INSERT INTO `forum_threads` (`name`, `byid`, `cid`, 
`content`, `time`, `lastreplied_time`, `lastreplier_id`) VALUES 
('{$title}', '{$uid}', '{$cid}', '{$content}', '" . time() . "', '" . 
time() . "', '{$uid}');") or die(mysql_error()); 

在我的PHP文件,我想byid是的id在我的表forum_users值。因此,我可以用forum_users取代{$uid}。因爲我不認爲{$ uid}工作正常。

我發現這個代碼

/* Non-existant forum account */ final public function 
createForumAccount($uid) { 
    $getHabboUser = mysql_query("SELECT * FROM 
     `users` WHERE `id` = '{$uid}' LIMIT 1"); 

我認爲該代碼的功能是讓{$uid}users表等於id,我想使{$uid}forum_users表等於ID 。

然後我發現這個代碼:

final public function getUserData($uid, $var) { 
    if($this->checkForAccount($uid) == true) { 
     $check = mysql_query("SELECT `{$var}` FROM `forum_users` WHERE `uid` = '{$uid}' LIMIT 1") or die(mysql_error()); 
     return mysql_result($check, 0); 
    } 
} 

該代碼希望{$uid}等於forum_users id。而這正是我想要的,但並不等於它,它等於users表中的id,而是我認爲它可能與彼此相沖突或其他。

我該如何解決這個問題?我可以在我的第一個代碼中替換{$uid},因此從forum_users立即選擇byid?我可以創建一個等於forum_users.id的新變量嗎?

+1

我不知道你在哪裏以及如何找到了使用'mysql_ *'函數的教程,但是即使看一看e'mysql_connect()'的文檔,你會看到一個**紅色的大框,表示它已被折舊使用它**。所以要麼學習PDO或mysqli,而要回到我們身邊。 – Xorifelse

回答

0

首先,這個SQL查詢沒有任何意義。但是我也不確定你的問題。如果您想要在表格中更改byidid,則必須更改表格。但是,這裏是你的sql查詢的更清晰的版本。 嘗試:

mysql_query("INSERT INTO forum_threads SET name=\"".$title."\",byid=\"".$uid."\",cid=\"".$cid."\",content=\"".$content."\",time=\"".time()."\",lastreplied_time=\"".time()."\",lastreplier_id=\"".$uid."\" WHERE id=\"".$uid."\" LIMIT 1") or die("Error: ".mysql_error()); 
//You Change ID to byid 

到byid改變ID

mysql_query("ALTER TABLE `forum_threads` CHANGE `byid` `id` int NOT NULL")or die("Error: ".mysql_error()); 
// this will change the column byid to id 

只需記住Mysql_connect()mysql API是老的PHP 7後無法使用,因此開始學習mysqli api

http://php.net/manual/en/book.mysqli.php

+0

我認爲你不明白,你在這段代碼中看到「byid」? **'mysql_query('INSERT INTO'forum_threads'('name','byid','cid','content','time','lastreplied_time','lastreplier_id')VALUES('{$ title}','{ $ uid}','{$ cid}','{$ content}','「。time()。」','「。time()。」','{$ uid}');「)或die(mysql_error()); **當查詢運行時,「byid」等於「{$ uid}」,並且我的用戶表中的用戶「id」等於I {$ uid}。我希望byid在該查詢中與forum_users「id」相等 –

+0

因此$ uid是否已經擁有forum_users/id的值?或者你想分配給uid?這是一個登錄檢查?或者我們知道forum_users有哪些特定的ID? – DarkSideKillaz