Php mysql比较表值

Php mysql比较表值,php,mysql,Php,Mysql,我正在用php创建一个投票。我有一个id列的表 当用户提交选择时,我希望php首先查询数据库并检查表“id”是否具有当前用户的id 我是mysql的新手,有人能帮我查询一下吗?试试这个: $q = "SELECT id FROM table WHERE id = '".mysql_real_escape_string($_POST['user_id'])."'"; $r = mysql_query($q); if(mysql_num_rows($r) > 0) { echo "

我正在用php创建一个投票。我有一个id列的表

当用户提交选择时,我希望php首先查询数据库并检查表“id”是否具有当前用户的id

我是mysql的新手,有人能帮我查询一下吗?

试试这个:

$q = "SELECT id FROM table WHERE id = '".mysql_real_escape_string($_POST['user_id'])."'";

$r = mysql_query($q);

if(mysql_num_rows($r) > 0) {
    echo "User ID was found in table";
} else {
    echo "User ID was not found in table";
}
$qryResult=mysql_查询(“从idtable中选择userid,其中userid='$theIdOfUser'”); if(mysql_num_rows($qryResult)==0) { //新增一票 } 其他的 { //通知用户禁止双重投票 }
尽量不要使用像“id”这样的名称,以避免与保留字冲突和相关的复杂性,并且需要使用引号

最好使用参数而不是字符串连接来创建查询。这不仅仅是SQL注入。这对优化器也有帮助。是的,但考虑到我们在这里处理的是一个完全的新手,而您没有解释如何将实际变量传递给查询,我认为这可能会更有帮助。教人们如何以非最佳方式进行也可能不是很有用。很容易犯错误,留下漏洞,而且如果没有参数,代码更难读取。我想我可以在我的评论中添加关于如何使用参数的信息,但这会填满整个页面。我认为如果他已经不知道如何使用参数,他应该问一个新问题,或者搜索关于这个主题的许多问题中的一个。没有真正起作用…警告:mysql\u num\u rows():提供的参数不是有效的mysql结果资源in@Mark拜尔斯,在我看来,一个人应该总是先学会用“错误”的方式来理解为什么它是错误的。但这并不是说我的表演有什么根本性的错误。如果关于如何使用参数的信息会填满一个页面,那么对于一个刚刚开始使用SQL的人来说,你不觉得这太多了吗?其他准备语句的方法呢,比如通过sprintf?我们是否也应该教他这一点,因为这是一个完全可行的替代方案,例如PDO准备的声明?作为初学者,尽量使事情简单。使用参数。尽管$theIdOfUser可能是一个整数,因此SQL注入的风险很低,但这样做仍然不是一个好主意。 $qryResult = mysql_query("SELECT userid FROM idtable WHERE userid='$theIdOfUser'"); if (mysql_num_rows($qryResult) == 0) { // add a new vote } else { // notify the user that double voting is prohibited }