-
-
Zend Temel MVC Yapısının Çalıştırılması
-
——————————————————————————-
-
-
Uygulama Hiyerarşisi
-
===============================================================================
-
application/
-
config/
-
controllers/
-
IndexController.php
-
ErrorController.php
-
layouts/
-
scripts/
-
models/
-
views/
-
scripts/
-
index/
-
index.phtml
-
error/
-
error.phtml
-
helpers/
-
filters/
-
html/
-
.htaccess
-
index.php
-
-
Dosya İçerikleri
-
===============================================================================
-
-
.htaccess
-
===============================================================================
-
RewriteEngine On
-
RewriteCond %{REQUEST_FILENAME} -s [OR]
-
RewriteCond %{REQUEST_FILENAME} -l [OR]
-
RewriteCond %{REQUEST_FILENAME} -d
-
RewriteRule ^.*$ - [NC,L]
-
RewriteRule ^.*$ /zend/proje_iskeleti/public/index.php [NC,L]
-
-
index.php
-
===============================================================================
-
-
-
-
realpath(APPLICATION_PATH .
‘/../library’)
-
-
);
-
-
require_once "Zend/Loader.php";
-
Zend_Loader::registerAutoload();
-
-
Zend_Controller_Front::run(APPLICATION_PATH . ‘/controllers’);
-
-
IndexController.php
-
===============================================================================
-
-
class IndexController extends Zend_Controller_Action
-
{
-
public function indexAction()
-
{
-
}
-
}
-
-
ErrorController.php
-
===============================================================================
-
-
class ErrorController extends Zend_Controller_Action
-
{
-
public function errorAction()
-
{
-
}
-
}
-
-
index.phtml
-
===============================================================================
-
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
<h1>Merhaba, Dünya :)</h1>
-
error.phtml
-
===============================================================================
-
-
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
<h1>Bir hata oluştu!</h1>
-
Zend_Controller_Front ile kullanılabilecekler
-
===============================================================================
-
-
//obje oluşturmak için:
-
$front = Zend_Controller_Front::getInstance();
-
-
// Set the default controller directory:
-
$front->setControllerDirectory(‘../application/controllers’);
-
-
// Set several module directories at once:
-
$front->
setControllerDirectory(array(
-
‘default’ => ‘../application/controllers’,
-
‘blog’ => ‘../modules/blog/controllers’,
-
‘news’ => ‘../modules/news/controllers’,
-
));
-
-
// Add a ‘foo’ module directory:
-
$front->addControllerDirectory(‘../modules/foo/controllers’, ‘foo’);
-
-
//MVC mevzusunu başlatır.
-
$front->dispatch();
-
-
Şu durumda genel sıralama şöyledir:
-
$front = Zend_Controller_Front::getInstance();
-
$front->setControllerDirectory(‘../application/controllers’);
-
$front->dispatch();
-
-
Bunların üçünü tek başına yapan fonksiyon ise:
-
Zend_Controller_Front::run(‘../application/controllers’);
-
-
//dispatch işleminden önce çağrılır. parametr true ise ekrana çıktı olmaz
-
//değişkene set edilebilir.
-
$front->returnResponse(true);
-
-
two-step view
-
===============================================================================
-
2 adımda ekran çıktısı oluşturulur. birincisi controller vasıtasıyla esas
-
detayı içeren göbek kısmı render ediilir. ikinci adımda dış layout a bu kod
-
bindirilir.
-
-
db-functions :: Zend_Db_Adapter_Abstract nesnesinden türeyen objedir
-
===============================================================================
-
bootsrap.php de şu şekilde tnaımlaması yapılır
-
-
$db = Zend_Db::factory($conf->db->adapter, $dbConfig);
-
Zend_Db_Table::setDefaultAdapter($db);
-
Zend_Registry::set(‘db’, $db);
-
-
-
daha sonra herhangi bir "model" içerisindeyken şu şekilde kullanılır
-
$db = Zend_Registry::get(‘db’);
-
-
factory vasıtasıyla obje oluşturulur ama DB ye connection kurulmaz. dolasıyıla bu
-
kodların yazımının bir DB masrafı yoktur.
-
-
$db->getConnection() :: DB ile bağlantı açar.
-
$db->getConfig() :: DB ye bağlanmakta kullanılan ayar değişkenlerini verir
-
$db->setProfiler(obje veya true) :: sql çalışma zamanlarını öğrenmek için profilingi aktif eder
-
$db->getProfiler() :: sorgu sonucundaki profiling değerini verir. dizi şeklinde tüm sorgular için
-
değeri tutar
-
$db->
query($sql,
$bind =
array()) ::
sorguyu direk çalıştırır. sorguda ? geçiyorsa her ? için
-
sırayla değerleri $bind parametresinde set edilir.
-
$db->beginTransaction() :: transaction başlatır
-
$db->commit() :: transaction ı commit eder
-
$db->rollBack() :: transaction ı geri alır
-
-
$db->
insert($table,
array $bind) ::
tablo adı ve değerler parametre oalrak geçilir. DB ye
-
insert atar.
-
-
$data =
array("adi"=>
‘orhan’,
’soyadi’=
‘doğan’,
‘yasi’=>
‘30′);
-
$table =‘employer’;
-
$db->insert($table, $data);
-
-
$db->
update($table,
array $bind,
$where =
”) ::
insert den tek farkı update için where
-
sartını istemesdir.
-
-
ÖRNEK 1:
-
$data =
array("adi"=>
‘orhan’,
’soyadi’=
‘doğan’,
‘yasi’=>
‘30′);
-
$table =‘employer’;
-
$where =‘id=3′;
-
$db->insert($table, $data, $where);
-
-
ÖRNEK 2:
-
-
‘updated_on’ => ‘2007-03-23′,
-
‘bug_status’ => ‘FIXED’
-
);
-
-
$where[] = "reported_by = ‘goofy’";
-
$where[] = "bug_status = ‘OPEN’";
-
-
$n = $db->update(‘table_bugs’, $data, $where);
-
-
$db->delete($table, $where = ”) :: tablodan kayıt siler.
-
-
$table =‘employer’;
-
$where =‘id=3′;
-
$db->insert($table, $where);
-
-
$db->select() :: Creates and returns a new Zend_Db_Select object for this adapter.
-
-
$db->getFetchMode() :: fetch modu verir.
-
-
$db->
fetchAll($sql,
$bind =
array(),
$fetchMode =
null) ::
$sql ile belirtilen ifade
-
çalıştırılır. ifade de ? varsa sırasıyla her soru işareti için $bind dizisinde
-
bir değer olmalıdır. $fetchMode istenirse verilebilir
-
-
$db->
fetchRow($sql,
$bind =
array(),
$fetchMode =
null) ::
sorgu sonucundaki ilk
-
satırı çeker
-
-
$db->
fetchAssoc($sql,
$bind =
array()) ::
Fetches all SQL result rows
as an
-
-
-
$db->
fetchCol($sql,
$bind =
array()) ::
Fetches the first column of all SQL
-
-
-
$db->
fetchPairs($sql,
$bind =
array()) ::
Fetches all SQL result rows
as
-
an
array of key-value pairs.
-
-
$db->
fetchOne($sql,
$bind =
array()) ::
Fetches the first column of the
-
first row of the SQL result.
-
-
$db->quote($value, $type = null) :: Safely quotes a value for an SQL statement.
-
If an
array is passed
as the value, the
array values are quoted
-
and then returned as a comma-separated string.
-
-
$db-> quoteInto($text, $value, $type = null, $count = null) :: Quotes a value and
-
places into a piece of text at a placeholder. The placeholder is a
-
question-mark; all placeholders will be replaced with the quoted value.
-
-
$text = "WHERE date < ?";
-
$date = "2005-01-02";
-
$safe = $sql->quoteInto($text, $date);
-
// $safe = "WHERE date < ‘2005-01-02′"
-
-
$db->quoteIdentifier($ident, $auto=false) :: Quotes an identifier
-
-
$adapter->quoteIdentifier(‘myschema.mytable’); //Returns: "myschema"."mytable"
-
veya
-
$adapter->
quoteIdentifier(array(‘myschema’,
‘my.table’));
//Returns: "myschema"."my.table"
-
-
$db->
listTables() ::
Returns a
list of the tables in the database.
-
-
$db->describeTable($tableName, $schemaName = null) :: Returns the column descriptions for a table. ,
-
-
$db->isConnected() :: Test if a connection is active
-
$db->closeConnection(); bağlantıyı kapatır
-
$db->lastInsertId($tableName = null, $primaryKey = null); Gets the last ID generated automatically
-
by an IDENTITY/AUTOINCREMENT column.
-
$db->setFetchMode($mode) :: Set the fetch mode.
-
$db->limit($sql, $count, $offset = 0) :: Adds an adapter-specific LIMIT clause to the SELECT statement
-
$db->getServerVersion() :: Retrieve server version in PHP style
-
-
"SELECT MAX(id)+1 FROM table" yapısı KUL-LA-NIL-MA-MA-LIDIR
-
===============================================================================
-
çoklu-istemci ortamında o anda hangi "yeni-satır" işleminin yürütüldüğü %100
-
kestirilemeyeceği için bu ifade ile id üretmek çok hatalarak sebep olur.
-
Bunun yerine ara bir tabloya insert atılmalı ve $db->lastInsertId() ile bu id
-
alınıp kullanılmalıdır.
-
-
Zend_Db_Profiler :: SQL lerin çalışma süre istatistikleri
-
===============================================================================
-
-
‘host’ => ‘127.0.0.1′,
-
‘username’ => ‘webuser’,
-
‘password’ => ‘xxxxxxxx’,
-
‘dbname’ => ‘test’
-
‘profiler’ => true // true: profiler aktif false:profiler pasif
-
);
-
$db = Zend_Db::factory(‘PDO_MYSQL’, $params);
-
-
$db->getProfiler()->setEnabled(false); //profiler ı aktif et
-
$db->getProfiler()->setEnabled(true); //profiler ı pasif et
-
-
$profiler = $db->getProfiler();
-
$profiler->getTotalNumQueries() :: returns the total number of queries that have been profiled.
-
$profiler->getTotalElapsedSecs() :: returns the total number of seconds elapsed for all profiled queries.
-
$profiler->
getQueryProfiles() ::
returns an
array of all query profiles
-
$profiler->getLastQueryProfile() :: returns the last (most recent) query profile, regardless of
-
whether or not the query has finished (if it hasn‘t, the end time will be null)
-
$profiler->clear() :: clears any past query profiles from the stack.
-
-
en uzun çalışan sorgunun gösterilmesi için bu yapı kullanılabili
-
$totalTime = $profiler->getTotalElapsedSecs();
-
$queryCount = $profiler->getTotalNumQueries();
-
$longestTime = 0;
-
$longestQuery = null;
-
foreach ($profiler->getQueryProfiles() as $query) {
-
if ($query->getElapsedSecs() > $longestTime) {
-
$longestTime = $query->getElapsedSecs();
-
$longestQuery = $query->getQuery();
-
}
-
}
-
-
// Only profile queries that take at least 5 seconds:
-
$profiler->setFilterElapsedSecs(5);
-
// Profile all queries regardless of length:
-
$profiler->setFilterElapsedSecs(null);
-
-
Sorguların tipine göre filtreleme:::
-
// profile only SELECT queries
-
$profiler->setFilterQueryType(Zend_Db_Profiler::SELECT);
-
-
// profile SELECT, INSERT, and UPDATE queries
-
$profiler->setFilterQueryType(Zend_Db_Profiler::SELECT |
-
Zend_Db_Profiler::INSERT |
-
Zend_Db_Profiler::UPDATE);
-
-
// profile DELETE queries
-
$profiler->setFilterQueryType(Zend_Db_Profiler::DELETE);
-
-
// Remove all filters
-
$profiler->setFilterQueryType(null);
-
-
Zend_Db_Profiler::CONNECT: connection operations, or selecting a database.
-
Zend_Db_Profiler::QUERY: general database queries that do not match other types.
-
Zend_Db_Profiler::INSERT: any query that adds new data to the database, generally SQL INSERT.
-
Zend_Db_Profiler::UPDATE: any query that updates existing data, usually SQL UPDATE.
-
Zend_Db_Profiler::DELETE: any query that deletes existing data, usually SQL DELETE.
-
Zend_Db_Profiler::SELECT: any query that retrieves existing data, usually SQL SELECT.
-
Zend_Db_Profiler::TRANSACTION: any transactional operation, such as start transaction, commit, or rollback.
-
-
Zend_Db_Table KULLANIMI
-
===============================================================================
-
aşağıdaki şekilde conenction objesi table nesnesine set edilebilir
-
$db = Zend_Db::factory(’PDO_MYSQL‘, $options);
-
$table = new Bugs(array(’db‘ => $db));
-
-
veya
-
-
$db = Zend_Db::factory(’PDO_MYSQL‘, $options);
-
Zend_Db_Table_Abstract::setDefaultAdapter($db);
-
-
şeklinde tanımlama yapıldıktan sonra kodun geri kalan kısmında
-
-
$table = new Bugs();
-
-
şeklinde tanımlama yapılabilir. Registery ye yapılmış db de kullanılabilirdi.
-
-
// First alternative:
-
class Member extends Zend_Db_Table_Abstract
-
{
-
protected $_schema = ‘bz‘;
-
protected $_name = ‘member‘;
-
protected $_primary = ‘member_id‘;
-
}
-
-
VEYA
-
// Second alternative:
-
class Member extends Zend_Db_Table_Abstract
-
{
-
protected $_name = ‘bz.member_id‘;
-
protected $_primary = ‘member_id‘;
-
}
-
-
Table initialization: sınıf construct olurken init () fonksiyonu otomatik çalışır.
-
sınıf yapılandırılırken çalışması istenen kodlar buraqya yazılır.
-
-
class Member extends Zend_Db_Table_Abstract
-
{
-
protected $_debug_member_id;
-
-
public function init()
-
{
-
$this->_debug_member_id =1234;
-
}
-
}
-
_______________________________________________________________________________
-
-
INSERT İŞLEMİ:::
-
$table = new Bugs();
-
$data = array(
-
’created_on‘ => ‘2007-03-22‘,
-
’bug_description‘ => ‘Something wrong‘,
-
’bug_status‘ => ‘NEW‘
-
);
-
$table->insert($data);
-
-
Example of inserting expressions to a Table :::
-
$table = new Bugs();
-
$data = array(
-
’created_on‘ => new Zend_Db_Expr(’CURDATE()‘),
-
’bug_description‘ => ‘Something wrong‘,
-
’bug_status‘ => ‘NEW‘
-
);
-
-
burada new Zend_Db_Expr(’CURDATE()‘) kullanılmıştır. mysql ifaqdelerini set etmek için
-
Zend_Db_Expr sınıfı kullanılır
-
-
_______________________________________________________________________________
-
-
UPDATE İŞLEMİ:::
-
$table = new Bugs();
-
$data = array(
-
’updated_on‘ => ‘2007-03-23‘,
-
’bug_status‘ => ‘FIXED‘
-
);
-
$where = $table->getAdapter()->quoteInto(’bug_id = ?‘, 1234);
-
$table->update($data, $where);
-
-
_______________________________________________________________________________
-
-
DELETE İŞLEMİ:::
-
$table = new Bugs();
-
$where = $table->getAdapter()->quoteInto(’bug_id = ?‘, 1235);
-
$table->delete($where);
-
-
_______________________________________________________________________________
-
-
PRIMARY KEY İLE SATIR BULMA:::
-
$table = new Bugs();
-
-
// Find a single row
-
// Returns a Rowset
-
$rows = $table->find(1234);
-
-
// Find multiple rows
-
// Also returns a Rowset
-
$rows = $table->find(array(1234, 5678));
-
-
burada dönen değer Zend_Db_Table_Rowset_Abstract sınıfındandır
-
-
_______________________________________________________________________________
-
-
SORGULAMA YAPMA:::
-
// Fetching a rowset
-
$rows = $table->fetchAll(’bug_status = "NEW"‘, ‘bug_id ASC‘, 10, 0);
-
$rows = $table->fetchAll($table->select()->where(’bug_status = ?‘, ‘NEW‘)
-
->order(’bug_id ASC‘)
-
->limit(10, 0));
-
-
// Fetching a single row
-
$row = $table->fetchRow(’bug_status = "NEW"‘, ‘bug_id ASC‘);
-
$row = $table->fetchRow($table->select()->where(’bug_status = ?‘, ‘NEW‘)
-
->order(’bug_id ASC‘));
-
-
YA DA
-
-
$table = new Bugs();
-
$order = ‘bug_id desc ‘;
-
-
// Return the 21st through 30th rows
-
$count = 10;
-
$offset = 20;
-
$select = $table->select()->where(array(’bug_status = ?‘ => ‘NEW‘))
-
->order($order)
-
->limit($count, $offset);
-
$rows = $table->fetchAll($select);
-
-
_______________________________________________________________________________
-
-
İSTENİLEN SÜTUNLARIN ÇAĞRILMASI :::
-
$table = new Bugs();
-
$select = $table->select();
-
$select->from($table, array(’bug_id‘, ‘bug_description‘))
-
->where(’bug_status = ?‘, ‘NEW‘);
-
$rows = $table->fetchAll($select);
-
-
_______________________________________________________________________________
-
-
İFADENİN SÜTUN OLARAK GETİRİLMESİ::
-
$table = new Bugs();
-
$select = $table->select();
-
$select->from($table,
-
array(’COUNT(reported_by
) as `
count`
‘, ‘reported_by
‘))
-
->where(’bug_status = ?‘, ‘NEW‘)
-
->group(’reported_by‘);
-
-
$rows = $table->fetchAll($select);
-
-
_______________________________________________________________________________
-
-
JOIN İLE SORGULAMA :::
-
$table = new Bugs();
-
-
// retrieve with from part set, important when joining
-
$select = $table->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
-
$select->setIntegrityCheck(false)
-
->where(’bug_status = ?‘, ‘NEW‘)
-
->join(’accounts‘, ‘accounts.account_name = bugs.reported_by‘)
-
->where(’accounts.account_name = ?‘, ‘Bob‘);
-
-
$rows = $table->fetchAll($select);
-
-
_______________________________________________________________________________
-
-
TABLO HAKKINDA META DATA ALMA
-
$table = new Bugs();
-
$select = $table->select()->where(’bug_status = ?‘, ‘NEW‘)
-
->order(’bug_id‘);
-
$row = $table->fetchRow($select);
-
-
_______________________________________________________________________________
-
-
USING A METADATA CACHE FOR A SPECIFIC TABLE OBJECT :::
-
// First, set up the Cache
-
$frontendOptions = array(
-
’automatic_serialization‘ => true
-
);
-
-
$backendOptions = array(
-
’cache_dir‘ => ‘cacheDir‘
-
);
-
-
$cache = Zend_Cache::factory(’Core‘,
-
-
$frontendOptions,
-
$backendOptions);
-
-
// A table class is also needed
-
class Bugs extends Zend_Db_Table_Abstract
-
{
-
// …
-
}
-
-
// Configure an instance upon instantiation
-
$bugs = new Bugs(array(’metadataCache‘ => $cache));
-
-
_______________________________________________________________________________
-
-
DEFINING CUSTOM LOGIC FOR INSERT, UPDATE, AND DELETE :::
-
-
bu yapıyı kullanarak araqya loglama veya başka tablolara kayıt atma imkanımız olur.
-
veya örnek koddaki gibi bazı field ları set edebiliriz.
-
-
class Bugs extends Zend_Db_Table_Abstract
-
{
-
protected $_name = ‘bugs‘;
-
-
public function insert(array $data)
-
{
-
// add a timestamp
-
if (empty($data[’created_on‘])) {
-
$data[’created_on‘] = time();
-
}
-
return parent::insert($data);
-
}
-
-
public function update(array $data, $where)
-
{
-
// add a timestamp
-
if (empty($data[’updated_on‘])) {
-
$data[’updated_on‘] = time();
-
}
-
return parent::update($data, $where);
-
}
-
}
-
-
_______________________________________________________________________________
-
-
CUSTOM METHOD TO FIND BUGS BY STATUS :::
-
aramalar için özel fonksyionlar yazabiliriz. böylece herhangi bir sql yazmadan
-
aradığımız değerleri parametre olarak geçerek erişebiliriz.
-
-
class Bugs extends Zend_Db_Table_Abstract
-
{
-
protected $_name = ‘bugs‘;
-
-
public function findByStatus($status)
-
{
-
$where = $this->getAdapter()->quoteInto(’bug_status = ?‘, $status);
-
return $this->fetchAll($where, ‘bug_id‘);
-
}
-
}
-
-
Zend_Db_Table_Row KULLANIMI
-
===============================================================================
-
Zend_Db_Table_Row sınıfını içerisinde birçok Zend_Db_Table_Rowset olan ve
-
onlar üzernde işlem yapan bir üst sınıf olarak düşünebiliriz.
-
Zend_Db_Table_Row nesnesinin döndürdüğü değerler Zend_Db_Table_Row sınıfındandır.
-
-
Zend_Db_Table_Abstract soyut sınıfının find() ve fetchAll() fonksiyonları
-
Zend_Db_Table_Rowset sınıfı tipinde değer döndürür. fetchRow() fonksiyonu ise
-
Zend_Db_Table_Row sınıfı türünde değer döner.
-
-
EXAMPLE OF FETCHING A ROW ::: Zend_Db_Table_Row
-
$bugs = new Bugs();
-
$row = $bugs->fetchRow($bugs->select()->where(’bug_id = ?‘, 1));
-
-
_______________________________________________________________________________
-
-
EXAMPLE OF READING A ROW IN A ROWSET ::: Zend_Db_Table_Row
-
-
$bugs = new Bugs();
-
$rowset = $bugs->fetchAll($bugs->select()->where(’bug_status = ?‘, 1));
-
$row = $rowset->current();
-
echo $row->bug_description; //bug_description sütununun değeri ekrana basılıyor
-
-
_______________________________________________________________________________
-
-
RETRIEVING ROW DATA AS AN ARRAY ::: Zend_Db_Table_Row
-
-
$bugs = new Bugs();
-
$row = $bugs->fetchRow($bugs->select()->where(’bug_id = ?‘, 1));
-
-
// Get the column/value associative array from the Row object
-
$rowArray = $row->toArray();
-
-
// Now use it as a normal array
-
foreach ($rowArray as $column => $value) {
-
echo "Column: $column\n";
-
echo "Value: $value\n";
-
}
-
-
_______________________________________________________________________________
-
-
WRITING ROWS TO THE DATABASE ::: Zend_Db_Table_Row
-
-
$bugs = new Bugs();
-
$row = $bugs->fetchRow($bugs->select()->where(’bug_id = ?‘, 1));
-
-
// Change the value of one or more columns
-
$row->bug_status = ‘FIXED‘;
-
-
// UPDATE the row in the database with new values
-
$row->save();
-
-
_______________________________________________________________________________
-
-
INSERTING A NEW ROW ::: Zend_Db_Table_Row
-
-
$bugs = new Bugs();
-
$newRow = $bugs->createRow();
-
-
// Set column values as appropriate for your application
-
$newRow->bug_description = ‘…description…‘;
-
$newRow->bug_status = ‘NEW‘;
-
-
// INSERT the new row to the database
-
$newRow->save();
-
-
_______________________________________________________________________________
-
-
POPULATING A NEW ROW FOR A TABLE ::: Zend_Db_Table_Row
-
-
$data = array(
-
’bug_description‘ => ‘…description…‘,
-
’bug_status‘ => ‘NEW‘
-
);
-
-
$bugs = new Bugs();
-
$newRow = $bugs->createRow($data);
-
-
// INSERT the new row to the database
-
$newRow->save();
-
-
yukarıdakine alternatif olarak setFromArray() kullanarak da yeni satır eklenebilir
-
-
$bugs = new Bugs();
-
$newRow = $bugs->createRow();
-
-
// Data are arranged in an associative array
-
$data = array(
-
’bug_description‘ => ‘…description…‘,
-
’bug_status‘ => ‘NEW‘
-
);
-
-
// Set all the column values at once
-
$newRow->setFromArray($data);
-
-
// INSERT the new row to the database
-
$newRow->save();
-
-
_______________________________________________________________________________
-
-
Deleting a row ::: Zend_Db_Table_Row
-
-
$bugs = new Bugs();
-
$row = $bugs->fetchRow(’bug_id = 1‘);
-
-
// DELETE this row
-
$row->delete();
-
-
_______________________________________________________________________________
-
-
SERIALIZING A ROW ::: Zend_Db_Table_Row
-
-
$bugs = new Bugs();
-
$row = $bugs->fetchRow(’bug_id = 1‘);
-
-
// Convert object to serialized form
-
$serializedRow = serialize($row);
-
-
// Now you can write $serializedRow to a file, etc.
-
Bir Yanıt
nehuy spamit s icq
Kasım 26th, 2009 at 3:34 pm
1nehuy spamit s icq…
Very usefull. Thanks! nehuy spamit s icq…
Bu gönderiye ait yorumlar için RSS beslemesi · TrackBack URI
Yorum yazın
Yorum göndermek için giriş yapmış olmanız gerekir.