如果用户创建了一个组,但该组不存在,则创建该组;但如果它已经存在,发送一条消息这样说。
这是我的密码。它插入到我的数据库中,但无法检查组是否已经存在。
<?php
mysql_connect('localhost','root','');
mysql_select_db('test');
$result = mysql_query('SELECT * FROM groups WHERE name!="'.misc::escape($_POST['name']).'"');
if(mysql_num_rows($result) == 0)
{
$sql="INSERT INTO groups(name) VALUES ('$_POST[name]')";
mysql_query($sql);
$select_result=mysql_query("SELECT * FROM groups WHERE name='$_POST[name]' ");
$row = mysql_fetch_assoc($select_result);
echo($row['id']);
}
else
{
echo("this group exist");
}
?>
您可以使用mysql_num_rows来计算查询返回的行数:
$result = mysql_query("SELECT * FROM groups WHERE name != '$_POST[name]'");
if (mysql_num_rows($result) == 0)
{
// create new group
}
else
{
// print an error
}
if("SELECT * FROM groups WHERE name!=('$_POST[name]')")
您正在创建一个if语句,用于检查您的字符串是否为true。对于上述情况,它将永远是正确的。我假设您真正想要的是将该字符串作为查询发送到您的数据库,在这种情况下,您应该在稍后的代码中使用mysql_query()
。
但另一方面,即使执行了该查询,该查询也毫无意义。它从数据库中选择名称不是$_POST[name]
的每一行(如果不是因为涉及括号的明显语法错误)。
$sql="INSERT INTO groups(name) VALUES ('$_POST[name]')";
mysql_query($sql);
在这里,您将值插入到数据库中,这实际上可以正常工作,只是您完全容易受到SQL注入的攻击。
所以总结一下:去阅读关于PHP和MySQL的基本教程