Je suis en train de connecter mon AS400 avec V5R3 avec PHP en utilisant ce code:howto se connecter à AS400 avec PHP
<?php
$server="Driver={Client Access ODBC Driver (32-bit)};System=xxx.xxx.xxx.xxx;
Uid=user;Pwd=password;"; #the name of the iSeries
$user="user"; #a valid username that will connect to the DB
$pass="password"; #a password for the username
$conn=odbc_connect($server,$user,$pass); #you may have to remove quotes
#Check Connection
if ($conn == false) {
echo "Not able to connect to database...<br>";
}
#Query the Database into a result set -
$result=odbc_exec($conn,"SELECT * FROM LIBRARY.V5TDOC0L WHERE T§DTDO = 20120319");
if (!$result)
{exit("Error in SQL");}
echo "<table><tr>";
echo "<th>T§NDOC</th>";
echo "<th>T§DTDO</th></tr>";
while (odbc_fetch_row($result))
{
$ndoc=odbc_result($result,2);
$dtdo=odbc_result($result,3);
echo "<tr><td>$ndoc</td>";
echo "<td>$dtdo</td></tr>";
}
echo "</table>";
#close the connection
odbc_close($conn);
?>
Je suis cette erreur:
Attention: odbc_exec() [function.odbc- exec]: Erreur SQL: [IBM] [Programme de contrôle ODBC de System i Access] [DB2 par i5/OS] SQL0104 - Token non valide. Jeton valide: <> = <> < =! <!>! => = < > = IN N'EST PAS COMME ENTRE., L'état SQL 37000 dans SQLExecDirect dans F: \ xampp \ htdocs \ php-as400 \ php-as400.php sur la ligne 25 Erreur dans SQL
Retrait de l'instruction SELECT le WHERE T§DTDO = 20120319
, je l'ai en cours d'exécution et la liste des éléments que je veux avec un avertissement.
Fatal error: Maximum execution time of 30 seconds exceeded in F:\xampp\htdocs\php-as400\php-as400.php on line 30
T§NDOC T§DTDO
C008931 19941102
P005027 19950214
P005031 19950320
P005055 19950612
P005062 19950904
P005065 19950920
P005082 19951218
P005157 19970102
P005186 19970428
P005187 19970429
P005190 19970520
I009353 19970721
P005257 19980217
Ligne 30 est:
while (odbc_fetch_row($result))
Je crois que le problème est le caractère § que j'ai trouvé à la recherche dans Internet (https://bugs.php.net/bug.php?id=47133), mais je ne sais pas comment le résoudre.
Le nom de la colonne est T§DTDO et le caractère § est ce qu'on appelle la section Sign (http://en.wikipedia.org/wiki/Section_sign) – stblack
La raison pour laquelle je enroule si le signe de section fait vraiment partie du nom de la colonne est que l'interface écran vert de DB2 ne l'aime pas. créer un exemple de table (T§DTDO char (10)); échoue avec un «jeton non attendu» au panneau de la section. Cependant, je peux le faire: créer un exemple de table ("T§DTDO" char (10)); Cela fonctionne insert dans l'exemple ("T§DTDO") valeurs ('ligne 1'); et ainsi cela sélectionne * de l'exemple; Donc je vous suggère d'essayer les guillemets autour du nom de la colonne et de voir si cela fonctionne. –