Geen hyphen gebruiken in MySQL-tabellen
Zojuist tijdens het developpen heb ik iets vreemds meegemaakt. Met het volgende stukje code laat ik alle velden zien in mijn database. Uiteraard netjes geëscaped, en hij loopt vast op het feit dat ik een hyphen; oftewel een streepje gebruik.
Blijkbaar mag dat niet in MySQL, maar toch kan het wel in de tabel. Is het niet vreemd dat het via PHP niet kan uitlezen, maar via het MySQL-tooltje HeidiSQL weer wel :P?
Uiteraard heb ik die streepjes maar verwijderd, maar het blijft wel een WTF-momentje. ;-)
PS: De tabel was overigens een gebackupte test-tabel met een datum van backuppen erin, dus begin maar niet over normalisatie ;-). En de PHP-code is onderdeel van een test-script om de databasestructuur uit te lezen.
Blijkbaar mag dat niet in MySQL, maar toch kan het wel in de tabel. Is het niet vreemd dat het via PHP niet kan uitlezen, maar via het MySQL-tooltje HeidiSQL weer wel :P?
Code (php)
1
2
3
4
2
3
4
<?php
$row = mysqli_query($conn,"SHOW columns FROM " . mysqli_real_escape_string($conn,$table[0]))
or die('cannot select table fields:'.mysqli_error($conn));
?>
$row = mysqli_query($conn,"SHOW columns FROM " . mysqli_real_escape_string($conn,$table[0]))
or die('cannot select table fields:'.mysqli_error($conn));
?>
Quote:
cannot select table fields:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-03-2019' at line 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-03-2019' at line 1
Uiteraard heb ik die streepjes maar verwijderd, maar het blijft wel een WTF-momentje. ;-)
PS: De tabel was overigens een gebackupte test-tabel met een datum van backuppen erin, dus begin maar niet over normalisatie ;-). En de PHP-code is onderdeel van een test-script om de databasestructuur uit te lezen.