Hallo liebe Community,
ich möchte eine PHP Funktion in einem SQL Update Befehl ausführen (MSSQL). Ich nutze dazu folgenden Connector: https://docs.microsoft.com/de-de/sql...l-server-ver15 unter Ubuntu (Apache).
Ich hatte damals ein Projekt in Access, bei dem folgendes ging (VB):
Jetzt wollte ich das gleiche in PHP machen:
In $conn sind die DB Daten gespeichert.
Das ganze scheint so aber nicht zu funktionieren...
Ich habe bereits eine Lösung, aber die ist ziemlich langsam (ich habe eine Hauptabfrage, welche Lat und Lng aus der Tabelle holt, anschließend berechne ich den Abstand mit der Funktion calc_distance() und mache ein SQL UPDATE mit den Werten):
Gruß
Markus
ich möchte eine PHP Funktion in einem SQL Update Befehl ausführen (MSSQL). Ich nutze dazu folgenden Connector: https://docs.microsoft.com/de-de/sql...l-server-ver15 unter Ubuntu (Apache).
Ich hatte damals ein Projekt in Access, bei dem folgendes ging (VB):
Code:
strSQL = "UPDATE Kundennummer_Lat_Lng_Status SET Abstand_temp = CalcDistance(lng, lat, " & lngStadt & ", " & latStadt & ")" CurrentDb.Execute strSQL
PHP-Code:
$sqlstr = "UPDATE Kundennummer_Lat_Lng_Status SET Entfernung = calc_distance(lng, lat, " . $latStandort . "," . $lngStandort . ")";
sqlsrv_query($conn, $sqlstr);
Das ganze scheint so aber nicht zu funktionieren...
Ich habe bereits eine Lösung, aber die ist ziemlich langsam (ich habe eine Hauptabfrage, welche Lat und Lng aus der Tabelle holt, anschließend berechne ich den Abstand mit der Funktion calc_distance() und mache ein SQL UPDATE mit den Werten):
PHP-Code:
$sqlstr = "SELECT DISTINCT * FROM [dbo].[MH_Kundensuche_B_Geodaten] RIGHT OUTER JOIN [dbo].[MH_Kundensuche_C_Ergebnis]
ON [dbo].[MH_Kundensuche_B_Geodaten].[Kundennummer] = [dbo].[MH_Kundensuche_C_Ergebnis].[Kundennummer]";
$stmt = sqlsrv_query($conn, $sqlstr);
while($row = sqlsrv_fetch_array( $stmt)) {
//Zu jeder Adresse den Abstand berechnen
$entfernung = calc_distance( $row['Lat'], $row['Lng'], $latStandort, $lngStandort);
$kundennummer = $row['Kundennummer'];
$sqlstr = "UPDATE dbo.[MH_Kundensuche_C_Ergebnis] SET [Entfernung] = '$entfernung' WHERE Kundennummer = $kundennummer";
// SQL Statement ausführen
sqlsrv_query($conn, $sqlstr);
}
Markus
Kommentar