2017-03-04 117 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