Quantcast
Channel: Recent Discussions — DataTables forums
Viewing all articles
Browse latest Browse all 82288

dblib connection on GNU/Linux

$
0
0

Hi Allan and Community!

I've had many problems trying to establish the connection with SQL Server on Windows and PHP Server on Gnu/Linux (Ubuntu).

https://datatables.net/forums/discussion/27877/freetds-connection-to-sql-server-from-linux-server

Now my configuration is the correct.

I'm using FreeTDS to create the connection, and I've done many test.

First I've tested in line command:

With Tsql:

$ tsql -S mssql -U sa -P Radec866
locale is "es_MX.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> select top 1 * from [plan_vuelo].[dbo].pv1_roles
2> go

nombre                  email   
Vendedor Matriz micke_hp_2.0@hotmail.com    
(1 row affected)
1> 

With Isql:

$ isql -v mssql sa Radec866
| Connected!                                                               
| sql-statement                        
| help [tablename]                      
| quit                                  

SQL> select top 1 nombre, email from pv1_roles

| nombre                                                  email                                             
+---------------------------------------------------+---------------------------------------------------+
| Vendedor Matriz                                   | micke_hp_2.0@hotmail.com                          

SQLRowCount returns 1
1 rows fetched
SQL> 

And Finally I've had to create a connection in a php file:

<?php
  try {
    $hostname = "mssql";
    $port = 1433;
    $dbname = "plan_vuelo";
    $username = "sa";
    $pw = "Radec866";
    $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
  } catch (PDOException $e) {
    echo "Failed to get DB handle: " . $e->getMessage() . "\n";
    exit;
  }
  $stmt = $dbh->prepare("select top 1* from pv1_roles");
  $stmt->execute();
  while ($row = $stmt->fetch()) {
    echo "<pre>";
      print_r($row);
    echo "</pre>";
  }
  unset($dbh); unset($stmt);
?>

And the connection is succesfull:

Array
(
    [idRoles] => 1
    [0] => 1
    [nombre] => Vendedor Matriz
    [1] => Vendedor Matriz
    [email] => micke_hp_2.0@hotmail.com
    [2] => micke_hp_2.0@hotmail.com
)

My hostname is mssql because in my /etc/freetds/freetds.conf I established the name by my host. And I can use mssql o my IP-SERVER in my hostname

   [mssql]
    host = IP-SERVER
    port = 1433
    tds version = 4.2

At the moment I'm secure that my FreeTDS config it works fine. now I'm trying to configure my DataTable Site.

My /php/lib/config.php

<?php if (!defined('DATATABLES')) exit(); // Ensure being used in DataTables env.

/*
 * DB connection script for Editor
 * Created by http://editor.datatables.net/generator
 */

// Enable error reporting for debugging (remove for production)
error_reporting(E_ALL);
ini_set('display_errors', '1');

/*
 * Edit the following with your database connection options
 */
$sql_details = array(
"type" => "Sqlserver",
"user" => "sa",
"pass" => "Radec866",
"host" => "mssql",
"port" => "1433",
"db" => "plan_vuelo",
"dsn"  => ""
);

And My Driver/Sqlserver/Query.php


static function connect( $user, $pass='', $host='', $port='', $db='', $dsn='' ) { if ( is_array( $user ) ) { $opts = $user; $user = $opts['user']; $pass = $opts['pass']; $port = $opts['port']; $host = $opts['host']; $db = $opts['db']; $dsn = isset( $opts['dsn'] ) ? $opts['dsn'] : ''; } if ( $port !== "" ) { $port = ",{$port}"; } try { $pdo = new PDO( "dblib:Server={$host}{$port};Database={$db}".self::dsnPostfix( $dsn ), $user, $pass, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ) ); } catch (\PDOException $e) { // If we can't establish a DB connection then we return a DataTables // error. echo json_encode( array( "sError" => "An error occurred while connecting to the database ". "'{$db}, {$dsn}'. The error reported by the server was: ".$e->getMessage() ) ); exit(0); } return $pdo; }

lo siento chicos he posteado este error varias veces, pero ahora estoy seguro que mi configuración es la correcta.

When I'm run my app says me:

Datatables warning: table id=pv1_roles - An error ocurred while connecting to the database 'plan_vuelo'. The error reported by the server was: SQLSTATE[HY000] Unable to connect: Adaptive Server is unavailable or dows not exist (severity) 9

I think I'm not passing the correct connection string in my config DataTable.

Friends hope their valuable assistance.

Thanks in advance.


Viewing all articles
Browse latest Browse all 82288

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>