WinnipegWideWeb Demo Blog

Indexes, slugs, and prepared statements. The boring stuff that prevents future pain.

Default post Published

Databases: the habits that save you later

Indexes, slugs, and prepared statements. The boring stuff that prevents future pain.

Prepared statements

Do not interpolate user input into SQL. Always bind. Even in demos.

Binding example

$stmt = $pdo->prepare('SELECT * FROM default_posts WHERE slug = :slug'); $stmt->execute([':slug' => $slug]); $post = $stmt->fetch();

You might also like

Suggested based on the post you opened.

1 min read · Published

Building a blog engine in plain PHP

A clean demo blog: PDO, prepared statements, and a block editor that feels familiar without being heavy.

1 min read · Published

PHP utilities that keep code sane

Escaping helpers, slugify, CSRF tokens, and a renderer that is strict enough to be safe.

1 min read · Published

WinnipegWideWeb: platform notes

A running log of the kind of building blocks that make a new platform feel fast and sturdy.