Jaka jest różnica między tymi dwoma prepared
sprawozdania?
$stmt = $pdo->prepare("SELECT * FROM employees WHERE name = :name");
$stmt->execute(array("name" => $name));
foreach ($stmt as $row) {
// do something with $row
}
2
$stmt = $dbConnection->prepare("SELECT * FROM employees WHERE name = ?");
$stmt->bind_param("s", $name);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// do something with $row
}
Sprawdziłem wiele kursów na temat przygotowanych oświadczeńale jedyną, którą zrozumiałem, była druga droga, ponieważ można ją napisać w sposób proceduralny, czy to nie to samo, co w przypadku PDO, ponieważ oba są przygotowanymi instrukcjami? Czy istnieje między nimi różnica prędkości lub łatwość użycia? drugi sposób, ponieważ myślałem, że PreparedStatment = PDO, ale byłem zszokowany, gdy wiedziałem, że to nie jest PDO, używając
mysqli_prepare
mysqli_stmt_bind_param
mysqli_stmt_execute
mysqli_stmt_bind_result
Odpowiedzi:
4 dla odpowiedzi № 1Różnica jest poniżej: -
- Mysqli jest tylko dla bazy danych MySQL. PDO obsługuje inne bazy danych wykorzystujące te same funkcje.
- Mysqli może być używany zarówno w stylu obiektowym, jak i proceduralnym. PDO jest zawsze zorientowany obiektowo.
- Mysqli obsługuje przygotowane instrukcje z "?" symbole zastępcze dla parametrów. PDO obsługuje oba "?" placeholders, a także nazwane placeholders, na przykład ": columnName".
- Mysqli wymaga użycia funkcji do wiązania każdej wartości parametru z przygotowaną instrukcją. PDO pozwala również po prostu przekazać tablicę wartości parametrów podczas wykonywania przygotowanej instrukcji.