84 lines
1.9 KiB
Markdown
84 lines
1.9 KiB
Markdown
# Datenbankabfragen
|
|
|
|
Diese Notiz beschreibt, wie in diesem Projekt lokale Datenbankabfragen ausgefuehrt werden koennen.
|
|
|
|
## Zugangsdaten
|
|
|
|
Die Verbindungsdaten liegen in:
|
|
|
|
- `config/database.php`
|
|
|
|
Dort stehen `host`, `dbname`, `user`, `pass` und `charset`.
|
|
|
|
## Empfohlener Weg
|
|
|
|
Am einfachsten ist eine kurze PHP-Datei oder ein kurzes PHP-Skript, das die vorhandene Projektkonfiguration verwendet.
|
|
|
|
Beispiel:
|
|
|
|
```php
|
|
<?php
|
|
declare(strict_types=1);
|
|
|
|
$config = require __DIR__ . '/../config/database.php';
|
|
|
|
$dsn = sprintf(
|
|
'mysql:host=%s;dbname=%s;charset=%s',
|
|
$config['host'],
|
|
$config['dbname'],
|
|
$config['charset'] ?? 'utf8mb4'
|
|
);
|
|
|
|
$pdo = new PDO(
|
|
$dsn,
|
|
$config['user'],
|
|
$config['pass'],
|
|
[
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
]
|
|
);
|
|
|
|
$stmt = $pdo->query("SELECT id, mp_number, designation_text FROM minorplanets_mpc WHERE mp_number = 1 LIMIT 1");
|
|
$row = $stmt->fetch();
|
|
|
|
echo json_encode($row, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
|
```
|
|
|
|
## Ausfuehrung
|
|
|
|
Wenn `php` nicht im Systempfad liegt, kann die lokale `php.exe` direkt verwendet werden.
|
|
|
|
Beispiel von diesem Rechner:
|
|
|
|
```powershell
|
|
C:\laragon\bin\php\php-8.4.5-nts-Win32-vs17-x64\php.exe .codex-temp\check_defaults.php
|
|
```
|
|
|
|
## Praktische Beispielabfragen
|
|
|
|
`Ceres` pruefen:
|
|
|
|
```sql
|
|
SELECT id, mp_number, designation_text, desig_packed
|
|
FROM minorplanets_mpc
|
|
WHERE mp_number = 1
|
|
LIMIT 1;
|
|
```
|
|
|
|
`Halley` pruefen:
|
|
|
|
```sql
|
|
SELECT id, designation_and_name, orbit_type
|
|
FROM comets_mpc
|
|
WHERE designation_and_name LIKE '%Halley%'
|
|
ORDER BY designation_and_name ASC, id ASC
|
|
LIMIT 10;
|
|
```
|
|
|
|
## Hinweise
|
|
|
|
- Temporaere Pruefskripte am besten in `.codex-temp/` anlegen und danach wieder loeschen.
|
|
- Fuer Projektcode immer die vorhandene `config/database.php` verwenden und keine Zugangsdaten hart in Dateien eintragen.
|
|
- Wenn nur geprueft werden soll, reichen `SELECT`-Abfragen ohne schreibende Operationen.
|