将mysql转换为mysqli检查查询

时间:2012-04-21 22:35:48

标签: php mysql mysqli

我有一个选择查询。另一个简短的if-form检查此select查询是否返回。

所以我有:

$query = "SELECT `a` FROM `b` WHERE c='$c'";
$test = ($query = mysql_query($query)) ? $mysql_num_rows($query) : 0;

所以我想转换成mysqli,但下面的代码似乎是错误的($ db = mysqli):

$query = "SELECT `a` FROM `b` WHERE c='$c'";
$test = ($query = $db->query($query)) ? $db->num_rows($query) : 0;

使用时:

$test = ($query = mysqli_query($query)) ? mysqli_num_rows($query) : 0;

它将回显错误消息:

Warning: mysqli_query() expects at least 2 parameters, 1 given...

所以如果有人会那么友好并且可以给我一个解决这个问题的建议我真的很感激。非常感谢。

2 个答案:

答案 0 :(得分:1)

过程模式中的mysqli并不默认使用像mysql库那样的最后建立的连接。您必须每次都明确包含连接:

$test = ($query = mysqli_query($conn, $query)) ? mysqli_num_rows($query) : 0;
                               ^^^^^^

同样,对于num_rows,它是mysqli_stmt_num_rows($result)

答案 1 :(得分:0)

如果您使用的是程序样式(即mysqli_query而不是OO方法),那么您应该将$ link var添加到mysqli_query

的参数中