The multiple annotations message is just a warning; your code is correct.
It gives the warning because in most cases, you don't want to do an
assignment inside a condition. Using "=" instead of "==" or "===" inside
a condition is a very common bug in PHP.
As for this script not working with other tables/schemas, did you make
sure to enter the schema name and table name in all caps? If I remember
correctly, they must be all caps.
HTH,
Brian May
Project Lead
Management Information Systems
Garan, Incorporated
Starkville, Mississippi
Young i Professionals
http://www.youngiprofessionals.com
"Cyndi Bradberry" <CyndiB@xxxxxxxx>
Sent by: web400-bounces@xxxxxxxxxxxx
08/24/2009 05:02 PM
Please respond to
Web Enabling the AS400 / iSeries <web400@xxxxxxxxxxxx>
To
<WEB400@xxxxxxxxxxxx>
cc
Subject
[WEB400] Help with PHP questions
Ok, I am finally getting a chance to work on my PHP book again. I am
using The IBM I Programmer's Guide to PHP, page 246 figure 8.12 as my
source code;
<?php
//Set the database name
$tableName = 'SYSTABLES' ;
$libName = 'QSYS2' ;
//Create the connection to the System i Relational Database
if (($dbh = db2_connect('BOISE','OPERIT','ITOPER')) === false) {
echo 'connection failed.<br>' ;
echo db2_conn_errormsg().'<br>' ;
die() ;
}
//Retrieve a result set with the column info for the
//file specified at the top of the script.
if (($cols = db2_columns( $dbh, null, $libName, $tableName, '%' )) ===
FALSE) {
echo 'colums retrieval failed. <BR>' ;
echo db2_stmt_errormsg(). '<BR>' ;
die() ;
}
//Fetch the first row and output the file name
// and library name from the result set.
$column = db2_fetch_assoc($cols) ;
echo 'FileTable: ' ;
echo $column["TABLE_SCHEM"]."/".$column["TABLE_NAME"]."<BR>" ;
//Loop thru all the result set rows and list all the column names.
do {
echo $column["COLUMN_NAME"]."<BR>" ;
} while ($column = db2_fetch_assoc($cols)) ;
?>
I get a triangle with an exclamation point next to the } while line at
the bottom of the code, which when I hover over, it shows this:
Multiple annotations found at this line:
- Line Breakpoint: db2Script1.php
[line: 31 ]
- bool-assign : Assignment in condition
The script runs (now, not sure why) and I get this output:
FileTable: QSYS2/SYSTABLES
TABLE_NAME
TABLE_OWNER
TABLE_TYPE
COLUMN_COUNT
ROW_LENGTH
TABLE_TEXT
LONG_COMMENT
TABLE_SCHEMA
LAST_ALTERED_TIMESTAMP
SYSTEM_TABLE_NAME
SYSTEM_TABLE_SCHEMA
FILE_TYPE
BASE_TABLE_SCHEMA
BASE_TABLE_NAME
BASE_TABLE_MEMBER
SYSTEM_TABLE
SELECT_OMIT
IS_INSERTABLE_INTO
IASP_NUMBER
ENABLED
MAINTENANCE
REFRESH
REFRESH_TIME
MQT_DEFINITION
ISOLATION
PARTITION_TABLE
TABLE_DEFINER
Should I be able to change to any file/library (Table/Schema) on the
system and get a list of the columns in the table ?
When I change the names in $tableName and $libName, I only get
FileTable: / as a response.
I know I have to be missing something simple here. Manual references
that will explain things are enjoyed.
Cyndi B.
Boise, ID
As an Amazon Associate we earn from qualifying purchases.