如果我将其限制为一个,我应该检查多行吗? (mysqli)
问题描述:
我正在从MySQL转换到MySQLi,我注意到如果我限制在mysql查询中的一行,是否有必要检查一下行数是否为1?毕竟,可以返回的行为0或1如果我将其限制为一个,我应该检查多行吗? (mysqli)
这是我目前使用的(未经测试,因为我从MySQL转换为mysqli的)代码:
$query = "SELECT email,auth,username FROM user_list WHERE id = '".$user["id"]."' LIMIT 1";
$query = $mysqli->query($query);
if($query and $query->num_rows() == 1)
{
答
你应该检查的一切是,如果一个查询返回0或更多行。 它不会返回超过LIMIT
子句所指定的值,但如果找不到匹配项,它可以返回0。
Btw,MySQLi只是一个扩展,允许你访问MySQL 4.1+提供的功能。它仍然是MySQL。
答
在MySQL,它的保证您将不会返回比LIMIT
条款中指定的更多的行。您无需担心被赋予多于一行。
答
由于您的查询在表的主键上包含WHERE
子句,因此它永远不会返回多行。
因此,在此查询中,LIMIT 1
是完全无用的(但完全没有错误)。
我会将其删除。
$query = "SELECT email,auth,username FROM user_list WHERE id = '".$user["id"]."'";
$query = $mysqli->query($query);
if($mysqli->errno==0 and $query->num_rows == 1)
{
是的,但如果有的话,我更喜欢使用OOP。由于我对PHP使用OOP是新手(我已经使用另一种语言编写了oop),因此我使用mysqli来理解oop在oop中的工作方式。 谢谢。 – qaisjp 2012-07-14 23:32:03