echo $begrüßung;
$search="
001\_name
";
$sql = 'SELECT001\_id
,001\_name
,001\_ort
,001\_eintrag
FROM001\_test
WHERE ? LIKE ? ORDER BY001\_id
';
$ergebnis = $db->prepare( $sql );
$ergebnis->bind_param('ss', $search, $suchwort );
Es kommt keine Fehlermeldung, eine Seite wird ausgegeben, allerdings _immer_ mit null Datensätzen.
Woran kann das liegen? Darf ich für den "FROM"-Begriff kein PS nehmen? Oder liegt der Fehler woanders?
Du hast keinen Platzhalter in der FROM-Klausel sondern in der WHERE-Klausel, aber das ist nicht das Problem. Ein Platzhalter steht für einen Wert, nicht für einen Bezeichner (Feldnamen u.ä.). Du übergibst links vom LIKE den String-Wert 001\_name
. Die Backticks werden dabei als Stringbestandteil angesehen. Diesen Wert vergleichst du mit dem Suchbegriff. Das ist ein syntaktisch korrektes Statement und sieht ausgeschrieben ungefähr so aus:
... WHERE '001\_name
' LIKE 'suchbegriff'
Das Ergebnis kann dabei nur dann positiv werden, wenn der Suchbegriff 001\_name
(inklusive Backticks) lautet. In allen anderen Fällen also wird die Bedingung nicht wahr.
Du kannst den Feldnamen nur direkt in das SQL-Statement einfügen.
echo "$verabschiedung $name";