用查询替换变量

时间:2017-03-04 03:47:46

标签: php mysql sql variables

我很擅长在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成为我的表idforum_users的值。因此,我可以将{$uid}替换为可从forum_users获取值的内容。因为我不认为{$ uid}工作正常。

我找到了这段代码

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

我认为该代码的功能是让{$uid}id表中的users相等,我想让{$uid}等于id来自forum_users表。

然后我找到了这段代码:

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相等。这正是我想要的,但它并不等于它,它等于id表中的users而是,我认为它可能会相互碰撞。

我该如何解决这个问题?我可以在第一个代码中替换{$uid},因此byid会立即选择forum_users吗?我可以创建一个等于forum_users.id的新变量吗?

1 个答案:

答案 0 :(得分:0)

首先,这个SQL查询毫无意义。但是我也不确定你的问题。如果您想要在表格中将byid更改为id,则必须更改该表格。但这是一个更简洁的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