Bonjour,
pour installer et tester php4WX voici les etapes
telechargez la derniere version : http://www.sqlmanagerx.com/telechargements-acces-alter-natifs
deposez les fichier connect.php et php4WD.php sur votre espace web (wamp, ou un acces réel ovh ou autre un espace web ayant acces a la base de données
modifier le fichier connect.php pour la partie connection les lignes en haut du fichier. la cle de cryptage doit etre la meme dans le script et dans le programme windev (on verra cela un peu plus loin
<?php
/****************************************************************************************************************************/
/* PHP4WX 9.2.0.15 du 25/06/2019
/* Createur : EMPRIN Frédéric @ 2003
/* email : emprin.frederic@emidev.fr
/* www.emidev.fr / www.SQLManagerX.com
/****************************************************************************************************************************/
$PublicKey = 'TestWINDEV';
/*******************************************************************
* CONNEXION ACTIVE ------------------------------------------
********************************************************************/
$serv = '127.0.0.1';
$user = 'root';
$pass = '';
$base = 'tests';
editez le fichier php4wd.php et cherchez la partie test
/***********************************************************************************************/
/* pour test du fichier en ligne de commande a mettre en commentaire avant passage a windev */
/***********************************************************************************************/
if($_GET['test']=='OUI'){
error_reporting($e & (E_ALL -E_WARNING -E_NOTICE));
$typeBase = 'PDOMySQL';
//***************************************************************************************
// test pour les langues arabes et autres ou il faut faire un set ou pas suivant le serveur
// il faudra aussi le faire dans windev mais la c'est simple un mySQLexec 1 seule fois
// en debut de projet
//***************************************************************************************
if ($modeUTF8Sortie=="OUI"){
$cmds[] = "SET CHARACTER SET 'UTF8'";
$cmds[] = "SET NAMES UTF8";
}
//***************************************************************************************
// requete test Pour afficher en mode navigateur et voir le test
//***************************************************************************************
$cmds[] = "select * from contacts ";
echo '<meta http-equiv="Content-Type" content="text/html; charset='.$charSet.'" />';
echo "version script : <b>".$ScriptVersion."</b><br>";
echo "version php : <b>".phpversion()."</b><br><br>";
}
/***********************************************************************************************/
modifier le type de base et la requete pour voir si cela fonctionne en ligne depuis le script (avant de passer sous windev il EST IMPORTANT QUE CETTE ETAPE FONCTIONNE
ouvez ensuite un navigateur et lancer la commande avec le test :
http://127.0.0.1/php4wd.php/?test=OUIvous devez avoir un resultat avec votre base
version script : <strong>PHP4WX 9.2.0.15 du 25/06/2019</strong><br>version php : <b>5.6.25</b><br><br>--DEBUTSQL--PHP4WDSEPidContactPHP4WDSEPnomPHP4WDSEPprenomPHP4WDSEPadressePHP4WDSEPdateNaissancePHP4WDSEP--LIGNES--PHP4WDSEP1PHP4WDSEPEMPRINPHP4WDSEPPhilippePHP4WDSEPtest d'adressePHP4WDSEP1968-07-29PHP4WDSEP2PHP4WDSEPKIRIKOUPHP4WDSEPtitiPHP4WDSEPvallée du lyon
38130 EchirollesPHP4WDSEP2000-10-25PHP4WDSEP3PHP4WDSEPEMPRINPHP4WDSEPfredericPHP4WDSEPchez lui bien au chaudPHP4WDSEP1967-02-03PHP4WDSEP4PHP4WDSEPtestPHP4WDSEPprenom du testPHP4WDSEPrue du test imaginairePHP4WDSEP2001-01-24PHP4WDSEP--BINDVARIABLE--PHP4WDSEP--FINSQL--PHP4WDSEP
une fois que cela fonctione vous pouvez passer sous windev
dans le code du projet definissez l'acces
MonAcces est un c_Php4WX
MonAcces:TypeBase = "PDOMySQL"
MonAcces:CleCryptage = "TestWINDEV"
MonAcces:CryptRetour = Faux
MonAcces:CrypteReq = Vrai
MonAcces:methodeZip=Faux
MonAcces:dataHexa = Faux
MonAcces:modeUTF8Entree = Vrai
MonAcces:modeUTF8Sortie = Faux
MonAcces:charset = "utf-8"
MonAcces:alphabet = alphabetUTF8
SI PAS EnModeTest() ALORS MonAcces:PocketPC=Vrai
SI PAS MonAcces:mySQLConnecte("http://clients.emidev.fr/emidev/php4wd.php","","","TESTS") ALORS
Erreur(MonAcces:ErreurText)
FinProgramme()
FIN
ensuite vous pouvez executer des requetes
requetes Select et remplissage d'une table
vrequete est une chaîne = "select nom,prenom,dateNaissance,adresse from contacts"
vindice est un entier
ZoneRépétéeSupprimeTout(ZR_contacts)
SI MonAcces:mySQLExec(vrequete,1) ALORS
TANTQUE MonAcces:mySQLFetch(1)
// sur chaque ligne action a faire
vindice = ZoneRépétéeAjouteLigne(ZR_contacts)
SI vindice>0 ALORS
ZR_contacts[vindice].LBL_NOM = MonAcces:mySQLLitColParNom(1,"nom")
ZR_contacts[vindice].LBL_PRENOM = MonAcces:mySQLLitColParNom(1,"prenom" )
ZR_contacts[vindice].LBL_DATENAISSANCE = MonAcces:mySQLLitColParNom(1,"dateNaissance" )
ZR_contacts[vindice].LBL_ADRESSE = MonAcces:mySQLLitColParNom(1,"adresse" )
ZR_contacts[vindice].imgClient = ""
FIN
FIN
SINON
Erreur(MonAcces:mySQLGetErrorMessage())
FIN
requete insert pour mise a jours des données
vRequete est une chaîne
vretour est un booléen
vRequete = "INSERT INTO PartieJeux SET "
vRequete += "libellePartie ="+accesbase:mySQLEscapeString(SAI_NOMpartie)
vRequete += ",nbjoueur ="+POT_NBJOUEUR
vRequete += ",NBCarteJoueur ="+SAI_NBcarteparjoueur
vRequete += ",JockerActif ="+int_jocker
vRequete += ",CouleurJoueur ="+int_couleur
vRequete += ",TirageUnique ="+int_tirage
vRequete += ",TirageCarte =''"
vRequete += ",datePartie ="+accesbase:mySQLEscapeString(DateSys())
vRequete += ",heurePartie ="+accesbase:mySQLEscapeString(HeureVersChaîne(HeureSys(),"HHMMSS"))
vretour = accesbase:mySQLExec(vRequete,1)
accesbase:mySQLFerme(1)
SI PAS vretour ALORS Info(accesbase:mySQLGetErrorMessage())
SI vretour ALORS Info("Enregistrement effectué")
pour inserer une image
vimage est un Buffer = fChargeTexte("G:\EMIDEV\Commercial\logo\yeux.png")
SI vimage<> "" ALORS
vimage= "0x"+Remplace(Remplace(BufferVersHexa(vimage),RC,"")," ","")
vrequete est une chaîne = "UPDATE contacts SET "
vrequete += "imgClient ="+vimage
SI PAS MonAcces:mySQLExec(vrequete,1) ALORS Erreur(MonAcces:mySQLGetErrorMessage())
afficheZR()
FIN
pour lire une image en passant pas hex
vindice est un entier
vrequete est une chaîne = "select nom,prenom,dateNaissance,adresse,hex(imgClient) as imgClient from contacts "
SI pwhere <> "" ALORS vrequete+=" where adresse like '%"+pwhere+"%'"
ZoneRépétéeSupprimeTout(ZR_contacts)
SI MonAcces:mySQLExec(vrequete,1) ALORS
TANTQUE MonAcces:mySQLFetch(1)
// sur chaque ligne action a faire
vindice = ZoneRépétéeAjouteLigne(ZR_contacts)
SI vindice>0 ALORS
ZR_contacts[vindice].LBL_NOM = MonAcces:mySQLLitColParNom(1,"nom")
ZR_contacts[vindice].LBL_PRENOM = MonAcces:mySQLLitColParNom(1,"prenom" )
ZR_contacts[vindice].LBL_DATENAISSANCE = MonAcces:mySQLLitColParNom(1,"dateNaissance" )
ZR_contacts[vindice].LBL_ADRESSE = MonAcces:mySQLLitColParNom(1,"adresse" )
ZR_contacts[vindice].imgClient = HexaVersBuffer(MonAcces:mySQLLitColParNom(1,"imgClient" ))
FIN
FIN
SINON
Erreur(MonAcces:mySQLGetErrorMessage())
FIN
les differents type bases possible :
//--------------------------------------
// MySQL
//--------------------------------------
MonAcces:TypeBase="MYSQL"
MonAcces:TypeBase="MYSQLI"
MonAcces:TypeBase="PDOMySQL"
//--------------------------------------
// SQL Server
//--------------------------------------
MonAcces:TypeBase="PDOSQLSRV"
MonAcces:TypeBase="MSSQL":
//--------------------------------------
// PostGreSQL
//--------------------------------------
MonAcces:TypeBase="POSTGRESQL"
//--------------------------------------
// SQLite
//--------------------------------------
MonAcces:TypeBase="SQLITE"
//--------------------------------------
// FireBird
//--------------------------------------
MonAcces:TypeBase="FB"
//--------------------------------------
// Oracle
//--------------------------------------
MonAcces:TypeBase="ORACLE"
//--------------------------------------
// ODBC
//--------------------------------------
MonAcces:TypeBase="ODBC"
//--------------------------------------
// ADO
// il faut aussi remplir :typeBaseADO
// valeur possible :"MSSQL","PDOMYSQL","PDOSQLSRV","MYSQLI"
//--------------------------------------
MonAcces:TypeBase="ADO"
MonAcces::typeBaseADO = "MSSQL"
ATTENTION pour IOS vos chaines doivent etre des chaine ansi
vRequete est une chaine ansi
sinon cela risque de ne pas fonctionner
cdlt