如何检查用户是不是存在于数据库表中?

Posted

技术标签:

【中文标题】如何检查用户是不是存在于数据库表中?【英文标题】:How do you check if a user exists in a database table?如何检查用户是否存在于数据库表中? 【发布时间】:2013-11-14 13:02:52 【问题描述】:

我试图找出当前登录的用户是否存在于某个数据库表中。如果它们已经存在,则给出错误。如果他们不需要,我需要将用户名和表单数据添加到表中。我是 phpmysql 数据库的新手。这是我到目前为止的代码:

//my html form, pretty simple.
<form method="post" action="">
<p>Out of Office <input name="onoff" type="checkbox" value="ON"></p>

<p><label>Custom Out of Office Message</label>
<input type="text" name="custommessage" size="30" maxlength="25"/></p>

<p><label>Enter Username</label>
<input type="text" name="username" size="30" maxlength="25"/></p>

<p><input type="submit" name="submit" value="Submit" /></p>
</form>

<?php
//I figured if I get the user information from the "b83hi_users" table, I can check it against the field input for "username" in the form above.

$user = JFactory::getUser();

if ($user->username == $_POST['username']) 

    //This checks if the checkbox is marked ON(or off). If it is checked (ON), I want to insert the form data into a table b83hi_out_of_office.
    if ($_POST['onoff'] == 'ON')

    $sql = "INSERT INTO b83hi_out_of_office (username, custommessage) VALUES ('$_POST[username]'.'$_POST[custommessage]')";

else
   echo "Invalid Username";


?>

就像我说的,我才刚刚开始。当我想到我需要采取的步骤时,一切都很有意义,但是代码不起作用。我坚持的主要部分是检查用户是否存在。有什么建议吗?

【问题讨论】:

【参考方案1】:

要检查用户是否存在于数据库中,你需要先连接到数据库:

<?php 
$conn = mysqli_connect($hostname,$dbUsername,$dbPass,$dbName);

$checkQuery = SELECT * from b83hi_users WHERE username='$_POST[username]';

$userCheck = mysqli_query($conn, $checkQuery);

if(!$userCheck)
echo "Invalid Username";

mysqli_close($conn);
?>

【讨论】:

我不需要包含连接到数据库的部分,因为我在 Joomla 中使用了 sorcerer,它会自动为我连接。我尝试了这段代码,但是当我去查看我网站上的页面时,它只是纯白色和空白。这是什么原因造成的? 我编辑了 $checkQuery,我在那里犯了一个错误。再试一次,让我知道。 您需要在 $userCheck= 行的末尾添加一个分号 - 我无法进行编辑,因为它需要 6 个字符长,而这只有 1 个,所以它介于裂缝之间。 . 已修复@bhttoan感谢您的提醒 @SabTheCoder 我仍然只是得到一个空白页...另外,我想知道... b83hi_ 是我数据库中所有表的前缀,是否有必要在在代码中命名表?

以上是关于如何检查用户是不是存在于数据库表中?的主要内容,如果未能解决你的问题,请参考以下文章

检查用户是不是存在于其他表中时查询出错

Sql Server 2008如何检查表中是不是存在列? [复制]

MySQL 从表中获取数据并检查表行中是不是存在用户 ID

如何检查用户是不是存在于数据库php中

如何检查另一个表中是不是存在主键值?

检查用户名是不是存在于数据库中