Как проверить, существует ли мой источник данных ODBC в PHP? - PullRequest
2 голосов
/ 29 февраля 2012

У меня есть простой проект, который заключается в создании функции, которая будет проверять соединения mysql и odbc. Я уже закончил в создании функции для MySQL, вот мой пример кода:

function check() {
    $serverName = 'localhost';
    $userName = 'root';
    $password = '123';
    $db = 'sample';

    $conn = mysql_connect($serverName, $userName, $password);
    mysql_select_db($db, $conn);

    $trans = 'SELECT * FROM Labels';
    $trans_result = mysql_query($trans, $conn);

    if(!$trans_result) {
        die(mysql_error());
    } else {
        echo "connected";
    }
}

Ну, этот работает для меня при проверке соединения mysql. Теперь мой вопрос: возможно ли создать что-то подобное для проверки соединения с источником данных odbc? Так что это будет похоже на

$conn = odbc_connect("spmuse1","" ,""); # Open connection.

$trans = "SELECT French FROM Labels";
$trans_result = odbc_exec($conn, $trans);

if(!$trans_result) {
    echo "error?";
} else {
    echo "connected";
}

Вы знаете, что я имею в виду? Когда я использую этот код, у меня всегда 2 эта ошибка

Предупреждение: odbc_connect () [function.odbc-connect]: ошибка SQL: [Microsoft] [ODBC Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию, состояние SQL IM002 в SQLConnect

Предупреждение: odbc_exec (): предоставленный аргумент не является допустимым ресурсом ODBC-Link

Пожалуйста, помогите! Спасибо.

Ответы [ 2 ]

0 голосов
/ 11 января 2014

Я потратил несколько дней в поисках простого ответа и придумал, что мне подходит:

if (@odbc_connect("DBName","un","pw",SQL_CUR_USE_ODBC) == FALSE){
    echo "Database does not exist";
} else {
    $connection=odbc_connect("DBName","un","pw",SQL_CUR_USE_ODBC);
    echo "Database exists";
}

@ подавляет основную ошибку, если база данных не существует, поэтому попытка подключения просто вернет false. Конечно, если соединение хорошее, оно создает объект соединения.

0 голосов
/ 29 февраля 2012

Сначала вам нужно определиться с поставщиком драйвера odbc, я надеюсь, что приведенный ниже пример подойдет вам

  <?php

     // Configure connection parameters
    $db_host        = "server.mynetwork";
    $db_server_name = "Dev_Server";
    $db_name        = "Dev_Data";
    $db_file        = 'c:\dbstorage\dev.db';
    $db_conn_name   = "php_script";
    $db_user        = "dbuser";
    $db_pass        = "dbpass";

    $connect_string = "Driver={Adaptive Server Anywhere 8.0};".
                "CommLinks=tcpip(Host=$db_host);".
                "ServerName=$db_server_name;".
                "DatabaseName=$db_name;".
                "DatabaseFile=$db_file;".
                "ConnectionName=$db_conn_name;".
                "uid=$db_user;pwd=$db_pass";

    // Connect to DB
    $conn = odbc_connect($connect_string,'','');

    // Query
    $qry = "SELECT * FROM my_table";

    // Get Result
   $trans_result= odbc_exec($conn,$qry);

  if(!$trans_result) {
    echo "error?";
  } else {
    echo "connected";
  }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...