我只是想知道如果我使用以下代码就可以了:
$query = mysqli_query($db, "SELECT * FROM myTable1")
while($result = mysqli_fetch_assoc($query)){
$temp = $result['id'];
}
然后我取这样的另一个表:
$query = mysqli_query($db, "SELECT * FROM myTable2")
while($result = mysqli_fetch_assoc($query)){
$temp = $result['id'];
}
我使用相同的变量$result
和$temp
。
我的意思是可以使用这样的代码吗?我是否应该像$result1
$result2
那样对变量进行不同的命名,依此类推?
让我们说,哪一个更好,更安全,在使用相同的变量名称或给变量不同的名称?
我希望有人可以解释一下。
谢谢你。
答案 0 :(得分:1)
如果您遵循SOLID原则,尤其是single responsibility principle希望您将功能隔离到不同的功能中。
如果你确实应用了这个,那么你并没有真正使用相同的变量,因为那时会有不同的范围,因此它不会成为问题。
简而言之,您不必重用变量,如果您的逻辑被分解为执行单个任务的函数,请不要将它们命名为$result1
,result2
等...这是您项目中code smell的标志。
答案 1 :(得分:-1)
如果你已经完成了myTable1,那么它完全可以,但如果你打算在代码中的其他地方使用它那么没有,因为只有myTable2信息将被保存在$ result中
答案 2 :(得分:-1)
如果使用相同的变量来存储数据,则每次迭代时变量值都将覆盖新值,while
语句后的值是最后一次迭代。
答案 3 :(得分:-1)
$temp
是一个局部变量,如果您之前没有定义它,那么可以安全地使用它。
$query
,根据语言允许你这样做,是的,你可以这样使用它。
答案 4 :(得分:-1)
假设您希望将数据库中的一些信息存储到变量中,然后在进行更多编码之前使用它。
所以我们有这个示例代码。将id
值存储到$temp
变量中。我们得到的输出是什么?
$query = mysqli_query($db, "SELECT * FROM myTable1")
while($result = mysqli_fetch_assoc($query)){
$temp = $result['id'];
}
例如,表myTable1
包含这样的数据。
+----+---------+---------+
| id | Col1 | Col2 |
+----+---------+---------+
| 1 | Value 1 | Value 2 |
| 2 | Value 1 | Value 2 |
| 3 | Value 1 | Value 2 |
| 4 | Value 1 | Value 2 |
+----+---------+---------+
我们的$temp
变量将等于4
。因为您从该表中获取所有内容,然后获取所有出现的结果。现在,让我们使用该变量。
echo 'Selected id from table myTable1 equals ' . $temp;
结果是
表myTable1中的选定ID等于4
然后,我们从另一个名为myTable2
的表中获取数据。
$query = mysqli_query($db, "SELECT * FROM myTable2")
while($result = mysqli_fetch_assoc($query)){
$temp = $result['id'];
}
该表包含这样的数据。
+----+---------+---------+
| id | Col1 | Col2 |
+----+---------+---------+
| 3 | Value 1 | Value 2 |
| 5 | Value 1 | Value 2 |
| 6 | Value 1 | Value 2 |
| 8 | Value 1 | Value 2 |
+----+---------+---------+
同样,同样的事情发生,$temp
变量现在等于8
。让我们以同样的方式使用它。
echo 'Selected id from table myTable2 equals ' . $temp;
结果是
表myTable2中的选定ID等于8
表myTable1中的选定ID等于4
从表myTable2中选择的id等于8
这里没有错。如果你愿意,你可以这样做。但请注意,如果您有更多代码行,建议不要多次使用同名变量。
相同的表格,结构和数据。让我们改变代码。
function printIndex($id) {
echo 'Index = ' . $id;
}
$query = mysqli_query($db, "SELECT * FROM myTable1")
while($result = mysqli_fetch_assoc($query)){
$temp = $result['id']; // Store id for further use
}
$query = mysqli_query($db, "SELECT * FROM myTable2")
while($result = mysqli_fetch_assoc($query)){
$temp = $result['id']; // Store id for further use
}
printIndex($temp); // Print stored id
指数= 8
编码错误。您必须使用唯一的变量名来防止这种情况。
答案 5 :(得分:-1)
您可以在逻辑上使用相同的变量名称。它不会给你一个错误(有时你可能会在这个上下文中使用这些变量)。但是不建议在变量名称中使用通用关键字。
而是尝试根据您的模型命名变量。请看下面的例子,
如果您的'myTable1'关于学生,那么您可以使用$ student而不是$ result1。 同样,如果您的'myTable2'与产品有关,那么您可以使用$ product而不是$ result2。