【发布时间】:2011-07-01 15:27:15
【问题描述】:
我正在尝试实现一个函数,如果一个具有相同名称(与给定名称相同)的字段尚不存在,该函数将在数据库中插入一个新条目。特别是我想限制表中重复的用户名。
我能想到的唯一方法是运行一个选择查询,然后如果它没有返回任何内容,则运行插入查询。出于某种原因,虽然我无法让它工作......
我的数据库选择函数
function getAllUsers($user)
{
$stmt = $this->db->stmt_init();
$stmt->prepare('SELECT username from users where username=? ');
$stmt->bind_param("s", $user);
$stmt->bind_result($username);
$stmt->execute();
$results = array();
while($stmt->fetch())
{
$results[] = array('username' => $username);
}
$stmt->close();
return $results;
}
我的 php 代码(这是在不同的页面中)
foreach ($GLOBALS['db']->getAllUsers($_POST['username']) as $i)
{
$results = "".$i['username']."";
break;
}
if(strcmp($results, "")==0)
{
if($GLOBALS['db']->addUser($_POST['username'],$_POST['password']))
{
session_destroy();
echo "registerSucces";
}
else
{
session_destroy();
echo "registerError";
}
}
else
{
echo "userNameExists";
}
你能看出这有什么问题吗???
谢谢
迈克
仍然无法找到如何使上述代码工作,但以防万一有人需要:一个临时的简单解决方案是根本不比较字符串,而是在 foreach 循环中有一个计数器,然后检查所需的数字( 0 在我的情况下)...
【问题讨论】: