Just working with this function and it's not working out as planned. It is supposed to grab all table names in a database and store them in an array. However the results of the array is doubling up the array shown in the example below:
Array ( [0] => 113340 )
Array ( [0] => 113340 [1] => 116516 )
Array ( [0] => 113340 [1] => 116516 [2] => 139431 )
Array ( [0] => 113340 [1] => 116516 [2] => 139431 [3] => 20731 )
Array ( [0] => 113340 [1] => 116516 [2] => 139431 [3] => 20731 ... )
The code that I am using:
function itemDiscontinued($dbh, $id, $detail) {
try {
$tableList = array();
$result = $dbh->query("SHOW TABLES");
while ($row = $result->fetch(PDO::FETCH_NUM)) {
$tableList[] = $row[0];
print_r($tableList);
}
}
catch (PDOException $e) {
echo $e->getMessage();
}
}
to get all names of the tables this is much better
public function list_tables()
{
$sql = 'SHOW TABLES';
if($this->is_connected)
{
$query = $this->pdo->query($sql);
return $query->fetchAll(PDO::FETCH_COLUMN);
}
return FALSE;
}
You are printing the array in the while loop! This will print it each time you add an item to it from the recordset. Instead you need to print it once it has completed populating like so:
function itemDiscontinued($dbh, $id, $detail) {
try {
$tableList = array();
$result = $dbh->query("SHOW TABLES");
while ($row = $result->fetch(PDO::FETCH_NUM)) {
$tableList[] = $row[0];
}
print_r($tableList);
}
catch (PDOException $e) {
echo $e->getMessage();
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With