Так что у меня есть проблема с библиотекой FPDF, которая используется для создания PDF-документа с данными из MYSQL-DB.FPDF/PHP: имена столбцов не получены с помощью Mysqli_fetch_fields()
В PHP 5, весь код работает, и я получаю следующий результат:
я использовал этот код для генерации его:
<?php
require('mysql_table.php');
class PDF extends PDF_MySQL_Table
{
function Header()
{
$this->SetFont('Arial','',18);
$this->Cell(0,6,'test',0,1,'C');
$this->Ln(10);
//Ensure table header is output
parent::Header();
}
}
//Connect to database
mysql_connect('localhost','root','');
mysql_select_db('testDB');
$pdf=new PDF();
$pdf->AddPage();
$prop=array('HeaderColor'=>array(255,150,100),
'color1'=>array(210,245,255),
'color2'=>array(255,255,210),
'padding'=>2);
$pdf->Table('SELECT `first_name`, `last_name`, `title` FROM a3324_userWHERE DELETED = 0 order by `date_entered`',$prop);
header('Content-type: test/pdf');
$pdf->Output('test'.".pdf", 'D');
?>
Когда Я попытался добиться этого на моем Linux-сервере, он отметил, что я должен использовать mysqli_ *, поскольку старая версия не поддерживается PHP 7.
Я заменил все функции их Mysqli-варианта и пришел к следующему результату:
Как вы можете видеть, он работает за исключением того, не извлекает имена столбцов из базы данных. Я сделал некоторые исследования и отметил, что старые функции для получения имен столбцов являются следующее:
foreach($this->aCols as $i=>$col)
{
if($col['c']=='')
{
if(is_string($col['f']))
$this->aCols[$i]['c']=ucfirst($col['f']);
else
$this->aCols[$i]['c']=ucfirst(mysql_field_name($res,$col['f']));
}
}
Так как я должен был использовать MySQLi, я обнаружил, что функция mysql_field_name()
не используется больше, и получил заменен mysqli_fetch_field()
или mysqli_fetch_fields()
.
Я попытался заменить mysql_field_name($res,$col['f'])
на mysqli_fetch_fields($res,$col['f'])
или на mysqli_fetch_field()
, но это тоже не сработало.
Где моя проблема быть расположена?
Спасибо! Я не узнал о 'mysqli_fetch_field_direct()' - функции! Теперь мой код отлично работает! –