两者有什么区别
$query = "SELECT email FROM users WHERE username='$username' ";
$result = mysqli_query($db, $query);
$row = mysqli_fetch_array($result);
$email = $row['email'];
$_SESSION['email'] = $email;
和
$query = "SELECT * FROM users WHERE username='$username' ";
$result = mysqli_query($db, $query);
$row = mysqli_fetch_array($result);
$email = $row['email'];
$_SESSION['email'] = $email;
它们都返回相同的值,有没有更有效的方法?
4条答案
按热度按时间dzjeubhm1#
*
如果你只想email
因为您正在返回每个列的值。您还应该参数化查询。
http://php.net/manual/en/mysqli.quickstart.prepared-statements.php
ubby3x7f2#
SELECT column
仅返回该列的值。SELECT *
返回表中每列的值。如果你愿意的话print_r($row)
在第二个代码块中,您将看到数组中的元素比$row['email']
.这里有一个很好的问答,讨论了
SELECT *
以及SELECT column
. @uueerdo关于另一个字段有一个巨大的blob导致性能问题的观点也是非常正确的。你也会遇到问题
SELECT *
当你是JOIN
如果两个表都有同名列,则当数据返回到应用程序框架时,一个表中的值可以覆盖另一个表。nx7onnlm3#
选择所有这意味着它将返回所有列,但“选择电子邮件”将返回列“电子邮件”,这是更有效的。您还可以选择许多列,如:“select id,email from users”。
iszxjhcz4#
select *
将返回表中所有行与 predicate 匹配的列的值,而select column_name
只返回column_name
列中与 predicate 匹配的行。