来自经典ASP的PHP新手。 打开记录集然后使用getrows放入数组是一个好习惯 并尽快关闭记录集和连接。
目前我正在使用像这样的mysqli(TQ w3schools):
$conn = new mysqli($mysql_servername, $mysql_user, $mysql_pass);
$sql = "SELECT product_name FROM table";
$Aprods = $conn->query($sql);
while($row = $Aprods->fetch_assoc()) {
echo $row["product_name"];
}
$conn->close();
这一切似乎都运行正常,但请告知这是否是一个好的做法(没有数组),还关闭连接? TQ
答案 0 :(得分:2)
最好使用准备好的陈述
$conObj = new mysqli("host", "user", "pass", "db");
//Creates sql template
$prepare = $conObj->prepare("SELECT * FROM `users`");
//Executes Query
$prepare->execute();
//Store Result
$prepare->store_result();
//And fetch
while($prepare->fetch())
{
//db items
}
//after you finish, close statement
$prepare->close();
您可以在CRUD(INSERT,SELECT,Delete,Update)操作期间使用它,也是保护您的应用程序免受SQL注入的好方法
答案 1 :(得分:0)
如果您不使用ActiveRecord或ORM,这是正常做法。
我重新使用PDO代替MySQli。它是一个类似的库,但是你可以使用pdo:$ array = $ res-> fetchAll()并直接获得数组中的结果。