今天我喝醉了。我写错了这样的代码。
$sql = "SELECT id, firstname, lastname, status FROM MyGuests";
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
if($row['status'] == 'Active') {
echo "<br> id: ". $row["id"]. " - Name: ". $row["firstname"]. " " . $row["lastname"] . "<br>";
}
}
它的工作方式与SELECT WHERE status ='Active'相同。 对我来说没有意义,为什么它有效?
我认为if语句只检查一列,而不是相对于所有行列。它应该不起作用。
答案 0 :(得分:3)
区别在于:
if($row['status'] == 'Active') {
在这里,您将数据库中的所有表记录带到您的应用程序,并在客户端进行过滤。因此,在传输所有数据时会产生性能成本。
WHERE status= 'Active'
执行db中的过滤器,只发送相关数据,因此效率更高。
答案 1 :(得分:2)
它们都用在php中。
==
Equality $x == $y
如果$ x和$ y具有相同的键/值对,则返回true
。
===
标识$x === $y
如果$ x和$ y具有相同顺序和相同类型的相同键/值对,则返回true
。
我希望你的怀疑现在已经清除。 : - )
答案 2 :(得分:0)
PHP中等于运算符的sintax是==(或===)
就像你的代码一样
if($row['status'] == 'Active')
mysql(或sql)中等于运算符的sintax是=
喜欢
SELECT WHERE col1 = 'Active' .
所以结果是等价的