1. Go to this page and download the library: Download k-kinzal/ztd-query-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
k-kinzal / ztd-query-php example snippets
use ZtdQuery\Adapter\Pdo\ZtdPdo;
// Create ZTD-wrapped PDO connection
$pdo = new ZtdPdo('mysql:host=localhost;dbname=test', 'user', 'password');
// Define schema and insert fixture data
$pdo->exec('CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))');
$pdo->exec("INSERT INTO users (id, name, email) VALUES (1, 'Alice', '[email protected]')");
$pdo->exec("INSERT INTO users (id, name, email) VALUES (2, 'Bob', '[email protected]')");
// Execute queries against fixture data (no physical table access)
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([1]);
$result = $stmt->fetchAll();
// Returns: [['id' => 1, 'name' => 'Alice', 'email' => '[email protected]']]
use ZtdQuery\Adapter\Pdo\ZtdPdo;
$existingPdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'password');
// Wrap without creating a new connection
$ztdPdo = ZtdPdo::fromPdo($existingPdo);
$pdo->exec('CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(255))');
$pdo->exec("INSERT INTO users (id, name) VALUES (1, 'Alice')");
// INSERT returns the inserted row data
$stmt = $pdo->prepare('INSERT INTO users (id, name) VALUES (?, ?)');
$stmt->execute([2, 'Bob']);
$inserted = $stmt->fetchAll();
// Returns: [['id' => 2, 'name' => 'Bob']]
// UPDATE returns the updated row data
$stmt = $pdo->prepare('UPDATE users SET name = ? WHERE id = ?');
$stmt->execute(['Alice Updated', 1]);
$updated = $stmt->fetchAll();
// Returns: [['id' => 1, 'name' => 'Alice Updated']]
// DELETE returns the deleted row data
$stmt = $pdo->prepare('DELETE FROM users WHERE id = ?');
$stmt->execute([1]);
$deleted = $stmt->fetchAll();
// Returns: [['id' => 1, 'name' => 'Alice']]
$pdo = new ZtdPdo($dsn, $user, $password);
// Disable ZTD to execute against physical database
$pdo->disableZtd();
$pdo->exec('CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(255))');
// Re-enable ZTD for testing
$pdo->enableZtd();
use ZtdQuery\Adapter\Pdo\ZtdPdo;
use ZtdQuery\Config\ZtdConfig;
use ZtdQuery\Config\UnsupportedSqlBehavior;
use ZtdQuery\Config\UnknownSchemaBehavior;
$config = new ZtdConfig(
// How to handle unsupported SQL statements (default behavior)
unsupportedBehavior: UnsupportedSqlBehavior::Exception, // or Ignore, Notice
// How to handle references to unknown tables
unknownSchemaBehavior: UnknownSchemaBehavior::Exception, // or Passthrough
// Per-pattern behavior rules (first match wins)
behaviorRules: [
// Prefix-based rules (case-insensitive)
'BEGIN' => UnsupportedSqlBehavior::Ignore,
'COMMIT' => UnsupportedSqlBehavior::Ignore,
'ROLLBACK' => UnsupportedSqlBehavior::Ignore,
// Regex-based rules (patterns starting with '/')
'/^SET\s+SESSION/i' => UnsupportedSqlBehavior::Ignore,
'/^SET\s+/i' => UnsupportedSqlBehavior::Notice,
],
);
$pdo = new ZtdPdo($dsn, $user, $password, config: $config);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.