我在MS azure上有一个SQL服务器。使用php文件和一些基本的select语句(例如select * from table)我已经能够从数据库中获取数据,所以我知道我的细节是正确的。
但是,当我在任何其他文件中放入connect语句时,页面显示为空白。例如,任何表单提交页面。
这是我的连接声明:
<?php
$myServer = "hostname";
$myUser = "username";
$myPass = "password";
$myDB = "dbname";
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");
?>
我确定它可能很简单,但我尝试了很多不同的方法,似乎没有任何工作,我甚至都没有得到错误信息。
有人可以帮忙吗?
答案 0 :(得分:0)
取消注释php.ini
中的这一行。
extension=php_mssql.dll
要找到您的php.ini
文件,请在PHP脚本顶部添加以下代码
<?php phpinfo(); ?>
答案 1 :(得分:0)
默认情况下,Azure环境不会安装php_mssql.dll
扩展名,而是会安装php_sqlsrv.dll
。
您可以利用Azure门户中的控制台工具,并执行php -m
以检查Azure PHP运行时中的所有预安装模块:
您可以在PHP中使用PDO来处理sql server数据库,例如以下连接测试:
try {
$conn = new PDO("sqlsrv:server = tcp:garysql.database.windows.net,1433; Database = garymbdata", "gary", "QWEasdzxc123");
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
print("Error connecting to SQL Server.");
die(print_r($e));
}
此外,除了直接修改php.ini之外,我们还可以在Azure Web App上配置PHP配置设置。如果您坚持,我们也可以在Azure Web App上安装mssql.dll
扩展名。
有关详细信息,请参阅https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-php-configure。