PHP FILE

<?php

define('HOST','tcp:sahilpaudel.database.wondows.net:1433');
define('USER','sahilpaudel');
define('PASS','asd@ASD123');
define('DB','db_sahil');

try {
    $conn = new PDO( "sqlsrv:Server= HOST ; Database = DB ", USER,PASS);
    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
catch(Exception $e){
    die(var_dump($e));
}

?>

Вот мой код PHP, который находится на моем сервере.

Это дает следующую ошибку:

object(PDOException)#2 (8) {
    ["message":protected]=> string(21) "could not find driver"
    ["string":"Exception":private]=> string(0) ""
    ["code":protected]=> int(0)
    ["file":protected]=> string(45) "/home/u710342539/public_html/CloudConnect.php"
    ["line":protected]=> int(9)
    ["trace":"Exception":private]=> array(1) {
        [0]=> array(6) {
            ["file"]=> string(45) "/home/u710342539/public_html/CloudConnect.php"
            ["line"]=> int(9)
            ["function"]=> string(11) "__construct"
            ["class"]=> string(3) "PDO"
            ["type"]=> string(2) "->"
            ["args"]=> array(3) {
                [0]=> string(36) "sqlsrv:Server= HOST ; Database = DB "
                [1]=> string(11) "sahilpaudel"
                [2]=> string(10) "mypassword"
            }
        }
    }
    ["previous":"Exception":private]=> NULL
    ["errorInfo"]=> NULL
}
0
Sahil Paudel 16 Апр 2016 в 15:57

3 ответа

Лучший ответ

Как сказал RiggsFolly, проблема в том, что «не удалось найти драйвер».

У вас должен быть модуль pdo_mysql. Создайте страницу с помощью phpinfo () и найдите pdo_mysql. Если такого модуля нет, то проблема в этом. Если у вас есть этот модуль, проблема должна быть где-то среди выполненных шагов - используйте официальное руководство - https://azure.microsoft.com/en-us/documentation/articles/web-sites-php-mysql-deploy-use-ftp/

Только что проверил - у меня оно работает со свежим новым веб-приложением.


Если это полезный ответ, отметьте его как полезный или как ответ. Благодаря!

0
Alex Belotserkovskiy 17 Апр 2016 в 11:36

Определенные значения не подставляются в строку подключения

Попробуйте вместо этого

<?php

    $HOST = 'tcp:sahilpaudel.database.wondows.net:1433';
    $USER = 'sahilpaudel';
    $PASS = 'asd@ASD123';
    $DB   = 'db_sahil';

    try {
        $conn = new PDO( "sqlsrv:Server=$HOST;Database=$DB", $USER,$PASS);
        $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    }
    catch(Exception $e){
        die(var_dump($e));
    }

?>

Если вы все еще получаете эту ошибку

object(PDOException)#2 (8) 
{ ["message":protected]=> string(21) "could not find driver" 
  ["string":"Exception":private]=> string(0) "" 
  ["code":protected]=> int(0) 
  ["file":protected]=> string(45) "/home/u710342539/public_html/CloudConnect.php" 
  ["line":protected]=> int(9) 
  ["trace":"Exception":private]=> array(1) { 
             [0]=> array(6) { ["file"]=> string(45) "/home/u710342539/public_html/CloudConnect.php" 
  ["line"]=> int(9) 
  ["function"]=> string(11) "__construct" 
  ["class"]=> string(3) "PDO" 
  ["type"]=> string(2) "->" 
  ["args"]=> array(3) { 
    [0]=> string(73) 

Тогда здесь важно "could not find driver"

Вы активировали / установили расширение PHP sqlsrv и установили драйвер PDO SQL Server

0
RiggsFolly 16 Апр 2016 в 13:24

Обычно проблема возникает из-за того, что в вашей среде выполнения PHP отсутствуют расширения. Чтобы использовать драйвер PDO sqlsrv, вам необходимо установить расширение, аналогичное php_pdo_sqlsrv_54_nts.dll.

Вы ссылаетесь на http://php.net/manual/en/ref.pdo- sqlsrv.php для получения дополнительной информации. Также вы можете обратиться к https: //azure.microsoft.com/en-us/documentation/articles/sql-database-develop-php-simple-windows/ на официальном сайте Azure, чтобы узнать, как приступить к работе с SQLServer с PHP.

Между тем, если ваш собственный веб-сервис не входит в систему Windows, вам необходимо установить FreeTDS для подключения к SQL Server. .

0
Gary Liu - MSFT 18 Апр 2016 в 03:31