密码问题中的&符 - php

时间:2010-08-23 16:21:00

标签: php sql-server escaping

几乎就是标题上的内容。我正在尝试使用包含&符号的密码连接到Microsoft SQL Server数据库:

<?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):未知错误。”消息。

如何逃避它?

Jonesy

1 个答案:

答案 0 :(得分:5)

如果您使用GET请求传递它,您只需要在HTTP请求字符串中转义&符号,您永远不应该,因为这会在您的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查询参数是发送动态的最佳方式,无需引用或转义。


重新提出您的最新问题:

搜索该错误消息会导致我使用谷歌浏览器作为他们的网络浏览器的许多其他人,他们在更改了他们的互联网代理设置时收到错误,或以其他方式搞砸了他们的浏览器或网络配置。 / p>

因此,我认为您遇到了网络问题,它与您的代码或密码无关。