2010-08-23 2 views
5

Довольно многое, что говорится в заголовке. Я пытаюсь подключиться к базе данных Microsoft SQL Server с помощью пароля, который содержит амперсанд:Проблема с амперсандом в пароле - php

<?php 
    $mssqlHost = "Reports.autotask.net,1433"; 
    $mssqlUser = 'NetworkROI'; 
    $mssqlPass = 'Rosdcpe7&Essdcscpalda'; //has been changed 
    $mssqlATDB = 'TF_3745000_WH'; 
    $SQLConnect = mssql_connect($mssqlHost,$mssqlUser,$mssqlPass) 
     or die('Could not connect to SQL Server on '.$mssqlHost 
     .' '. mssql_get_last_message()); 
?> 

На, возможно, связанного с этим вопроса: Я получаю «Ошибка 101 (Net :: ERR_CONNECTION_RESET): Неизвестная ошибка. ", Когда я пытаюсь подключиться.

Как избежать этого?

Джоунси

+4

Зачем вам нужно избегать этого? –

+2

Предоставьте нам метод, который вы используете для подключения к БД, и к какой БД ... – canni

+0

обновили мой вопрос – iamjonesy

ответ

5

Вы должны были бы только избежать амперсанд в строке запроса HTTP, если передать его запрос GET, который вы никогда не должны делать, потому что будет передавать открытым текстом пароль в URL. При отправке конфиденциальных данных используйте запрос POST и протокол HTTPS.

Вам не нужно избегать амперсанда в SQL-запросе. Это вполне допустимо SQL:

SELECT ... FROM Accounts WHERE user = 'Jonesy' AND password = 'M&Ms are tasty' 

Но я также рекомендую научиться использовать параметры запроса:

SELECT ... FROM Accounts WHERE username = ? AND password = ? 

Тогда вы никогда не должны спросить, как избежать этого персонажа или этот персонаж снова. Параметр SQL-запроса - лучший способ отправить динамическое значение без необходимости цитирования или эскапирования.


Re обновленному вопрос:

Поиск, что сообщение об ошибке приводит меня ко многим другим людям, которые используют Google Chrome в качестве веб-браузера, которые получают ошибку, когда они изменили свои настройки интернет-прокси, или прикрутили их браузер или сетевую конфигурацию каким-то другим способом.

Итак, я пришел к выводу, что у вас проблема с сетью, это не имеет никакого отношения к вашему коду или вашему паролю.

Смежные вопросы