如果用户创建了一个组并且该组不存在,则创建该组;但如果它已经存在,请发送一条消息说明。
这是我的代码。它插入到我的数据库中,但无法检查组是否已存在。
<?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");
}
?>
答案 0 :(得分:1)
您可以使用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
}
答案 1 :(得分:0)
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的基础教程。