Mi chiedo quale sia l'equivalente in PHP per l'escape delle stringhe di SQL Server?alternativa mysql_real_escape_string per SQL Server
risposta
Bella domanda, non lo so ma è possibile utilizzare PDO::quote()
con il driver PDO_DBLIB
.
EDIT: Sembra this guygot it from StackOverflow:
function mssql_escape($data) {
if(is_numeric($data))
return $data;
$unpacked = unpack('H*hex', $data);
return '0x' . $unpacked['hex'];
}
Un'altra opzione:
function mssql_escape($str)
{
if(get_magic_quotes_gpc())
{
$str= stripslashes($str);
}
return str_replace("'", "''", $str);
}
Funziona con PHP7? Perché l'hanno rimosso. – YumYumYum
La migliore alternativa è quella di utilizzare le query parametrizzate, allora non devono sfuggire alle stringhe.
Se si desidera mettere insieme la query da soli, il metodo corretto per evitare una stringa letterale per SQL Server (T-SQL) è sostituire ogni apostrofo (') nella stringa con due apostrofi.
Gestisce anche caratteri null, backslash e simili nella stringa? –
@ebyrob: Sì. A proposito, i backslash in una stringa non hanno bisogno di alcun trattamento speciale. – Guffa
È valido per tutti i set di caratteri? –
La risposta breve è: utilizzare il meccanismo fornito dalle librerie di connessione, in realtà non ha nulla a che fare con il database. Se stai usando ADO, hai delle query parametrizzate, se stai usando qualcos'altro (non so nulla di PHP), quindi usa tutto ciò che offre la libreria.
Rotolare il proprio è probabilmente una cattiva idea, perché è molto probabile che tu abbia qualcosa che non va, ad es. gestire correttamente i delimitatori di commento.
- 1. mysql_real_escape_string è sufficiente per l'Injection SQL?
- 2. mysql_real_escape_string() COMPLETAMENTE protegge dall'iniezione SQL?
- 3. Perché mysql_real_escape_string() non dovrebbe evitare SQL Injection?
- 4. Alternativa a Ottimizzazione guidata di SQL Server?
- 5. T-SQL per ogni alternativa?
- 6. mysql_real_escape_string() rimuove completamente stringa
- 7. mysql_real_escape_string con Zend
- 8. C'è PHP mysql_real_escape_string per postgresql?
- 9. Mac alternativa allo studio di gestione del server SQL?
- 10. reverse mysql_real_escape_string
- 11. mysql_real_escape_string e '
- 12. SQL Server Compact Edition è una valida alternativa a SQLite?
- 13. Può mysql_real_escape_string SOLO prevenire tutti i tipi di iniezione sql?
- 14. mysql_real_escape_string() per le variabili $ _SESSION necessarie?
- 15. domande su mysql_real_escape_string
- 16. mysql_real_escape_string VS addslashes
- 17. Supporto specifico per SQL Server per OrmLite
- 18. Rimuovere sql server 2005 express per installare SQL Server 2008
- 19. Qual è una buona alternativa a SQL Server per le applicazioni ASP.NET?
- 20. Sanitize modulo di contatto senza mysql_real_escape_string
- 21. SQL Server: IsCharAlpha
- 22. dati da SQL Server per elasticsearch Nodo
- 23. avanzata SQL Server Ordina per
- 24. SQL Server - Ordina per caso
- 25. Eccezione JDBC per SQL Server
- 26. Strumento per SQL Server diff
- 27. Ordinamento naturale per SQL Server?
- 28. MySQL Workbench per SQL Server?
- 29. PHP per connessione SQL Server
- 30. Devo usare PDO per disinfettare le mie query Sql o "mysql_real_escape_string" è sufficiente?
Se si utilizza un wrapper come PDO, non ci si deve preoccupare di questo perché è possibile lavorare con query parametrizzate. Se puoi, usa un involucro. –
Spiacente, non ho il privilegio di usare PDO. –