Matti Maekitalo: /MYSQL Nach Vorhandensein eines Datensatzes überprüfen?

Beitrag lesen

use Mosche;

Also das mit der Parameterbindung verstehe ich nicht so ganz, aber das Problem mit den Entities habe ich bereits so gelöst, dass ich die  Variablen, die Sonderzeichen enthalten könnten, mit HTML::Entitites kodiert, sodass diese gleich als kodiert in die Datenbank eingelesen werden.
(Zumindest hat sich diese Methode bei meinen früheren Daten Ein,-Auselese Scripts bewährt, und jetzt bei mySQL sollte es sicher auch funktionieren)

$nick = 'blah'; delete from users where nick != 'bjkh';
hat dein Script ganz schnell raus gehauen, weil dann nämlich das delete noch ausgeführt wird. Besser:
$sth = $dbh->prepare("select from users where nick = ?");
$sth->execute($nick);

oder:
$nick = $dbh->quote($nick);
$sth = $dbh->prepare("select from users where nick = $nick"); # jetzt ohne anführungsstrichelchen
$sth->execute();

Die erste Methode ist vorzuziehen, weil du dann das Statement-Handle noch weiterbenutzen kannst (wenn du zB noch einen anderen Usernamen abfragen willst, reicht es, nochmals $sth->execute('neuer_nick') aufzurufen).

use Tschoe qw(Matti);

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.