PHP API direkt an die DB

Kirby2k7

Aktives Mitglied
5. Juni 2009
9
0
Guten Tag,

ich würde gerne in Erfahrung bringen ob sich an das folgende Vorhaben schonmal jemand versucht hat.

Die Basis:
- Win2k Home Sever
- MS SQL-Server 2005 Express
- XAMPP (PHP5, MYSQL5, Apache2,...)
- JTL-Wawi (v. 0.9.9.629)

Das was ich gerne machen würde wäre eine Art Online-Kundenbenutzercenter. Ohne die Anbindung an einen Shop. Ich würde gerne mit PHP direkt auf die MS-DB zugreifen und dort die Daten auslesen und dann weiter an einen Webserver schicken der die Daten weiterverarbeitet. Leider bekomme ich aber keine Verbindung von PHP zu der MSSQL-Datenbank hin.

Durch viele Foren habe ich mich nun schon gekämpft und auch schon diverse Probleme im Vorfeld ausgeräumt. So ist die Datei "ntwdblib.dll" für die MSSQL-Unterstützung auf dem neusten Stand und die Datei "php_mssql.dll" ist ebenso in der php.ini geladen. Dennoch schreibt er mir immerzu, dass er keine Verbindung zum Server herstellen kann.

Vielleicht ist einer von euch schon weitergekommen oder kann mir helfen mein Vorhaben weiter zu realisieren. Ich würde mich über Antworten, die weiter helfen oder auch nur Tips geben, sehr freuen.

Vielen Dank und schöne Grüße Kirby.

---

Weitere Informationen zur php.ini:
Code:
[MSSQL]
; Allow or prevent persistent links.
mssql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
mssql.max_persistent = -1

; Maximum number of links (persistent+non persistent).  -1 means no limit.
mssql.max_links = -1

; Minimum error severity to display.
mssql.min_error_severity = 10

; Minimum message severity to display.
mssql.min_message_severity = 10

; Compatability mode with old versions of PHP 3.0.
mssql.compatability_mode = Off

; Connect timeout
;mssql.connect_timeout = 5

; Query timeout
;mssql.timeout = 60

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textlimit = 4096

; Valid range 0 - 2147483647.  Default = 4096.
;mssql.textsize = 4096

; Limits the number of records in each batch.  0 = all records in one batch.
;mssql.batchsize = 0

; Specify how datetime and datetim4 columns are returned
; On => Returns data converted to SQL server settings
; Off => Returns values as YYYY-MM-DD hh:mm:ss
;mssql.datetimeconvert = On

; Use NT authentication when connecting to the server
mssql.secure_connection = Off

; Specify max number of processes. -1 = library default
; msdlib defaults to 25
; FreeTDS defaults to 4096
;mssql.max_procs = -1
Datenbankverbindungsscript:
PHP:
<?php
$myServer = ".\SQLEXPRESS";
$myUser = "user";
$myPass = "pass";
$myDB = "eazybusiness";

//connection to the database
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
  or die(mssql_get_last_message()); ?>
 

Kirby2k7

Aktives Mitglied
5. Juni 2009
9
0
AW: PHP API direkt an die DB

Hallo,

die Daten in meinem Script sind nur zur Veranschaulichung gewählt. Wenn das dein Bezug war.

Bzgl. der Daten weiß ich nur dass es unterschiede zwischen NT-Authentifikation und MSSQL-Authentifikation gibt. Einmal also mit den Windows-Benutzer anmelden oder mit dem Benutzer "sa".
 

alex2911

Aktives Mitglied
26. Juli 2007
53
0
AW: PHP API direkt an die DB

ich kann dir nur mit ZF helfen...
das da schnappen --> [#ZF-905] Create a Zend_Db adapter for ODBC - Zend Framework Issue Tracker (die größere datei) in \Zend\Db\Adapter\Pdo reinlegen als Odbc.php und dann mit:

Code:
database.adapter = "pdo_odbc"
database.params.host = "******"
database.params.username = "sa"
database.params.password = "******"
database.params.dbname = "Driver={SQL Native Client};
Server=localhost\******;Database=eazybusiness;"
gut zureden.

schaut in etwa so aus:

Code:
include "Zend/Loader.php";
Zend_Loader::registerAutoload();
require_once 'Zend/Config/Ini.php';
require_once 'Zend/Controller/Action.php';
require_once 'Zend/Db.php';
require_once 'Zend/Auth/Adapter/DbTable.php';

$config = new Zend_Config_Ini('config/config.txt', 'production'); 
   
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);
$db = Zend_Db::factory($config->database);
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('db', $db);  
.....
    $data = array('cBarcode' => $eintrag2, 'cInet' => 'Y');
    $where[] = "kArtikel = '" . $eintrag1 . "'";
    $n = $db->update('tartikel', $data, $where);

Passt nun wohl nicht ganz hier rein - sorry -- und ist auch zusammengewürfelt aus mehreren dateien aber ich denke, du schaffst es schon :)
 

Kirby2k7

Aktives Mitglied
5. Juni 2009
9
0
AW: PHP API direkt an die DB

Danke dir für deine Hilfe... mein Problem hat sich nun aber irgendwie gelegt. o0
Nachdem ich letzte Woche das MS SQL Server 2005 Konfigurationstool installiert habe und mich versucht habe anzumelden klappte alles noch über die SQL-Daten. Heute versuchte ich erneut mich mit diesem Tool anzumelden und es scheitert. Nachdem ich dan mal versucht hatte mich mit dem Windows-Anmeldedaten anzumelden klappte alles auf anhieb.

Das hatte ich dann auch mit der PHP-Version probiert. In der php.ini die NTauthentifikation auf On gesetzt und das Script überarbeitet und siehe ich hatte eine Verbindung und konnte Datensätze herauslesen. Damit wäre also Schritt eins erfolgreich.

Jetzt habe ich allerdings zwei andere Fragen:

Ich habe PDFCreator installiert um aus meinen Rechnungen die ich mit JTL erstelle PDF-Dokumente zu machen. Dieses klappt auch ohne Probleme. Auch der Mailversand. Nun hat das Tool aber noch die Option VBS nach dem Speichern des PDF-Dokuments auszuführen. Das klappt auch nur der FTP-Upload nicht.
Habe dort alle relevanten Daten geändert und angepasst. Nun wollte ich es testen und dann erhalte ich die Fehlermeldung Could not create object named "InetCtls.Inet.1". Aber nichts im Internet... hat vielleicht noch jemand dieses Problem und weiß Rat? Ich hab nämlich keine Ahnung von VBS... kann mir nur einiges ableiten.

Das andere: Wollte ich eigentlich nur fragen ob es eine Möglichkeit gibt mit VBS eine URL lokal auf dem Server auszuführen ohne diese im Browser aufzurufen! Also quasi: http://localhost:Port/exec.php
Wenn jemand hier auch noch Rat wüsste. Vielen Dank!

Freue mich über jede Antwort, vielen Dank!

EDIT:
Das Umfeld ist WHS mit OS Win2K
 
Zuletzt bearbeitet:

alex2911

Aktives Mitglied
26. Juli 2007
53
0
AW: PHP API direkt an die DB

zur letzten frage: php kann doch cli :)
exec zb. oder shell_exec, system .

aber anstoßen musst du es über den browser. sonst weiß ja das programm nicht wann es los gehen soll.
du könntest natürlich mit flags (zb. in der datenbank) spielen aber es kommt aufs selbe raus.
 

Kirby2k7

Aktives Mitglied
5. Juni 2009
9
0
AW: PHP API direkt an die DB

Danke für die Antwort. Aber das war nicht das was ich genau meinte. ;)
Um PHP ausführen zu können muss man eine Datei aufrufen. Daher mein Gedanke:

JTL -> PDFCreator -> VBS -> Lokaler XAMPP-Server -> ...

Der Weg von JTL zu PDFCreator ist klar, ebenso der von PDFCreator zu VBS nur wie bekomme ich es mit Visual Basic Script hin eine URL im Hintergrund aufzurufen oder auszuführen. Wobei. :eek: Es reicht ja wenn die URL aufgerufen wird, sich der Browser öffent und danach der Javascript-Befehl window.close() zum Einsatz kommt. :eek: Da muss man erst eine Nacht darüber schlafen um auf diesen Gedanken zu kommen. :D

Also, dann hat sich die zweite Frage wohl erübrigt. Denn wie man eine URL in VBS aufruft weiß ich. ^^ Jetzt also nur noch die erste Frage. Aber die hab ich glaub ich auch schon fast gelöst. So wie ich gestern noch gelesen habe braucht man für das erstellen des Objektes MS Visual Studio 6. Heute nochmal prüfen und dann kauf ich das mal eben. Dann sollte das eventuell auch schon klappen. Ich informier euch wenn ich etwas neues weiß.

Wenn ich mit etwas falsch liege bitte um Berichtigung. Dankeschön!
 

Kirby2k7

Aktives Mitglied
5. Juni 2009
9
0
AW: PHP API direkt an die DB

So jetzt habe ich alles so hinbekommen wie ich wollte. :) *freu*
FTP-Upload der Daten, Schnittstelle zwischen JTL und dem Internet. Da kann das Kundeninterface ja kommen.

Ach ja... MS Visual Studio 6.0 hat mir bei dem obrigen Problem dann doch geholfen.

Der Code um eine URL aufzrufen in Visual Basic is folgender:
Code:
Set WSHShell = CreateObject ("Wscript.Shell")
WSHShell.Run "IEXPLORE.EXE http://DOMAIN.TLD" , 1

Damit öffnet sich das Browserfenster. Wenn man dieses dann schließen will macht man das mit Hilfe von JS:
HTML:
window.close();

Dann klappts auch mit dem Kundeninterface. ;) Danke an alle die mir geholfen haben und helfen wollten. :)
 

Kirby2k7

Aktives Mitglied
5. Juni 2009
9
0
AW: PHP API direkt an die DB

Muss mich leider korrigieren. Mit

Code:
window.onload = window.close();
kann man das grad' geöffnete Fenster nicht schließen. Aber mit einer kleinen Erweiterung des VBS-Scripts geht das binnen Sekunden.

Code:
Set ws = WScript.CreateObject("WScript.Shell")
ws.Run "IEXPLORE.EXE http://www.domain.tld",1
wscript.sleep 5000
ws.AppActivate "NAME DES FENSTER"
ws.sendkeys ("%{F4}"), true
 
Ähnliche Themen
Titel Forum Antworten Datum
Wichtig Beta Connector für Presta 8 mit PHP 8+ PrestaShop-Connector 48
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 3
Neu /navi.php?q=2 Abfragen laufen auf 404 Gelöste Themen in diesem Bereich 4
Neu JTL Connector Woocomerce für PHP Version 7.4 WooCommerce-Connector 2
Neu Connector für php 8.3 / Prestashop 8.1.3 PrestaShop-Connector 6
Neu JTL-Shop 5 und PHP OpCache Allgemeine Fragen zu JTL-Shop 9
Neu Richtige Hook zum Berechnen der Lieferzeit in Artikel.php Technische Fragen zu Plugins und Templates 1
Neu API Anbindung erklärt User helfen Usern - Fragen zu JTL-Wawi 1
[JTL-WAWI API] MandatoryApiScopes / OptionalApiScopes JTL-Wawi 1.8 3
[JTL-WAWI API] Bestellung mit Stücklistenartikel JTL-Wawi 1.8 5
API Seminar JTL-Wawi 1.8 3
FAIL_TO_CREATE_OFFER API meldet - An unit with the id_offer already kaufland.de - Anbindung (SCX) 19
Neu API Integration via Workflow Arbeitsabläufe in JTL-Wawi 10
[JTL-WAWI API] Wie funktioniert die Item-Image API? JTL-Wawi 1.8 0
[JTL-WAWI API] CaseSensitiv in der Create Sales Order JTL-Wawi 1.8 0
[JTL-WAWI API] Rechtschreibfehler in Item-Schnittstelle JTL-Wawi 1.8 0
[JTL-WAWI API] Nettopreise werden nicht gespeichert JTL-Wawi 1.8 0
Neu JTL FFN API - Schreibrechte fehlen.... Schnittstellen Import / Export 3
[JTL-WAWI API] Gewicht (ItemWeight) wird nicht gespeichert JTL-Wawi 1.8 2
Was mache ich falsch? Kaufland API meldet - already exists kaufland.de - Anbindung (SCX) 1
[JTL-WAWI API] Versandposition in Auftrag erstellen? JTL-Wawi 1.8 3
[JTL-WAWI API] - Trigger Sales Order Workflow Event JTL-Wawi 1.8 3
Neu Excel mit Bild direkt in Ameise hochladen? JTL-Ameise - Ideen, Lob und Kritik 1
Neu 💙 Neues Plugin: Wunschzettel Plus (Wunschzettelauswahl direkt am Artikel) Plugins für JTL-Shop 0
Neu Weiterleitungen direkt per Datenbank einfügen aufgrund Größe bzw. Anzahl? Betrieb / Pflege von JTL-Shop 9
Neu CSV-Datei direkt in einer SQL-Abfrage verwenden User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen