Właśnie zmieniłem wszystkie moje zapytania sql do przygotowanych instrukcji używając mysqli. Aby przyspieszyć ten proces, stworzyłem funkcję (o nazwie performQuery
), która zastępuje mysql_query
. Pobiera kwerendę, wiązania (jak "sdss") i zmienne, aby przekazać, to robi wszystkie rzeczy o uporządkowanej instrukcji. Oznaczało to, że zmiana mojego starego kodu była łatwa. Moja funkcja zwraca obiekt mysqli_result
przy użyciu mysqli get_result()
.Mysqli get_result alternatywa
Oznaczało to mogę zmienić mój stary kod:
$query = "SELECT x FROM y WHERE z = $var";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)){
echo $row['x'];
}
do
$query = "SELECT x FROM y WHERE z = ?";
$result = performQuery($query,"s",$var);
while ($row = mysql_fetch_assoc($result)){
echo $row['x'];
}
To działa prawidłowo na localhost, ale serwer mój hosting nie ma mysqlnd dostępne, dlatego get_result()
nie praca. Instalacja mysqlnd nie jest opcją.
Jaki jest najlepszy sposób, aby przejść stąd? Czy mogę utworzyć funkcję, która zastępuje get_result()
i jak?
Działa jak urok <3 –
Witam Felipe, użyłem tego kodu, to wygląda dobrze 99%, ale dla niektórych warunków się nie powiedzie, W mojej tabeli db istnieje kolumna zawierająca ten ciąg "Szukamy używanych arkuszy azbestowych. Arkusze nie powinny być uszkodzone, wymagana grubość to 10 mm. " więc nie powiedzie się dla tego ciągu. dowolny pomysł? – Sandeep
Jaka jest nazwa kolumny i jej typ danych? Na ile jesteś pewien, że problem dotyczy tej funkcji? Czy wykluczyłeś każdą inną możliwość? – Sophivorus