Php 返回的Mysqli num行不工作
我想知道为什么在mysql\u num\u行运行时,它对mysqli不起作用Php 返回的Mysqli num行不工作,php,mysql,mysqli,Php,Mysql,Mysqli,我想知道为什么在mysql\u num\u行运行时,它对mysqli不起作用 if (mysql_num_rows($rows) > 0) { echo "<p>That name has been taken </p>"; } if(mysql\u num\u rows($rows)>0){ echo“该名称已被采用””; } 那就是mysql。但是,我试着把它转换成mysqli if (mysqli_num_rows($rows) > 0)
if (mysql_num_rows($rows) > 0) {
echo "<p>That name has been taken </p>";
}
if(mysql\u num\u rows($rows)>0){
echo“该名称已被采用””;
}
那就是mysql。但是,我试着把它转换成mysqli
if (mysqli_num_rows($rows) > 0) {
echo "<p>That name has been taken </p>";
}
if(mysqli_num_rows($rows)>0){
echo“该名称已被采用””;
}
它应该显示在屏幕上,但不是。并且没有显示任何错误消息。还是我遗漏了什么?有什么想法吗?您可以尝试以下代码:
$connect = new mysqli("localhost", "user", "password", "database");
$query = "SELECT name FROM table";
$statement= mysqli_prepare($connect, $query)
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
if (mysqli_stmt_num_rows($statement) > 0) {
echo "<p>That name has been taken </p>";
}
mysqli_stmt_close($statement);
mysqli_close($connect);
$connect=newmysqli(“本地主机”、“用户”、“密码”、“数据库”);
$query=“从表中选择名称”;
$statement=mysqli\u prepare($connect,$query)
mysqli_stmt_execute($statement);
mysqli_stmt_store_结果($statement);
如果(mysqli\u stmt\u num\u行($statement)>0){
echo“该名称已被采用””;
}
mysqli_stmt_close($statement);
mysqli_close($connect);
首先,是关于mysql*
和mysqli*
函数之间的一些差异的快速教程
在mysql.*
中,您将有3个用于DB连接的参数,然后有一个单独的行用于DB选择
例如:
$db = mysql_connect("host","username", "password");
$db_selected = mysql_select_db('db_name', $db);
if (!$db_selected) {
die ('Can\'t use this : ' . mysql_error());
}
mysql_query($query,$db);
首先是查询,然后是数据库连接
例如:
$db = mysql_connect("host","username", "password");
$db_selected = mysql_select_db('db_name', $db);
if (!$db_selected) {
die ('Can\'t use this : ' . mysql_error());
}
mysql_query($query,$db);
但是在mysqli.*
中,包括参数位置在内的情况发生了变化。现在,您可以放置所有4个参数,例如(如果尚未放置):
然后DB连接将首先出现,然后是查询,而不是反过来:
mysqli_query($db,$query);
示例查询:
$email = mysqli_real_escape_string($db,$_POST['email']);
$query = mysqli_query($db, "SELECT * FROM table_name WHERE email='".$email."'");
if(mysqli_num_rows($query) > 0){
echo "email already exists";
}else{
$sql="INSERT INTO table_name (email) VALUES ('$email')";
if (!mysqli_query($db,$sql))
{
die('Error: ' . mysqli_error($db));
}
}
您是否完全使用了
mysqli
?如果您正在使用mysql\u query
运行查询,并尝试使用mysqli\u num\u rows
获取num\u行,那么它将不起作用。你必须在任何地方使用mysqli函数。在你的页面中,你可以一次使用mysql
或mysqli
。不能同时使用它们。什么是$行?显示整个代码段。