Php 为什么要使用num_行
每当我需要从数据库中获取信息时,比如说当用户登录时,我需要验证并获取用户数据时,我会这样做:Php 为什么要使用num_行,php,mysql,sql,Php,Mysql,Sql,每当我需要从数据库中获取信息时,比如说当用户登录时,我需要验证并获取用户数据时,我会这样做: 检查用户是否存在num\u行 使用fetch\u数组获取用户数据 因此,我的问题如下: 我只是在想,有没有更简单的方法来做这一切。就像只使用fetch_array一样,如果它不存在,它将返回false或它执行的任何操作 如果有一种单语句方式来实现这一点,那么您需要num\u rows做什么 我知道这不是一个完美的答案,但我经常这样做 $link = mysql_connect("localhost",
num\u行
fetch\u数组获取用户数据
fetch_array
一样,如果它不存在,它将返回false或它执行的任何操作num\u rows
做什么我知道这不是一个完美的答案,但我经常这样做
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$num_rows = mysql_num_rows(mysql_query("SELECT * FROM table1", $link));
echo "$num_rows Rows\n";
你发布了两个问题,对我来说,它们是相关的。然而,答案似乎是间接的,因此,也许可以进行简短的讨论 我喜欢尽可能地使用类属性和方法(阅读:我理解它们),这不仅是为了方便,也是为了稳定性和生命周期。有1)某种程度的信任已经过测试,2)至少在有人对它进行彻底测试之前,它会一直存在。此外,如果属性或方法发生更改,则Find…Replace通常会立即将其清除
过去,考虑我所做的:
(object)$db=new mysqli(HOST_DEF, USER_DEF, PASS_DEF, DB_DEF);
if($db->connect_errno || $db->errno) {
//Do error stuff here
}
(string)$sql = sprintf("SELECT * FROM Table WHERE User='%s'",
filter_input(INPUT_POST, '$UserStringPassedInMaybe'));
(object)$result=$db->query($sql);
if(!$result || $result->num_rows()===0) {
@$result->free();
$db->close();
unset($sql);
//Handle that stuff here
}
您希望以某种方式捕获(量化)记录集,并且您可以压缩这样做的方式。但是,如果您只想测试记录集的存在性,并且做得足够多,那么您可以通过将其划分为返回布尔值的函数来节省几行代码,但您仍然在计算该返回值,而您可以将$result本身作为布尔值进行计算(只要它是空的)。有点脏,因为它要么计算为布尔值false,要么计算为数组。从这个意义上说,不需要,您不需要num_rows。我添加了PHP标记,因为这看起来不像是MySQL的问题。您不使用num_rows和fetch_array在任何编程语言中使用MySQL吗?@RubyRacer您在哪里看到了
mysqli
弃用通知?根据手册,这是不正确的信息。对不起,是mysql,不是mysqli。。我的错。。。输入错误您不需要num_行,您的断言完全正确。请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,请不要使用答案来询问澄清问题。