Hi
Ich bin gerade an einem Perl Script.
Momentand kann es nicht mehr als sich mit meiner amarok MySQL DB verbinden und nach Artisten Suchen.
Ich möchte die Daten dynamisch abrufen.
Am allerliebsten natürlich wie in PHP
PHP Beispiel
PHP
<?php
$search_name = "Sum";
$sql = mysql_query('SELECT * FROM `artist` WHERE `name` LIKE "%'.mysql_real_escape_string($search_name).'%"');
while($res = mysql_fetch_assoc($sql)) {
foreach($res as $key=>$val) {
printf("[%s]=>'%s'\t",$key,$val);
}
echo "\n";
}
?>
So in der Art.
Mein Perl Script sieht so aus.
Code
#!/usr/local/bin/perl
%mysql_config = (
'host'=>'localhost',
'user'=>'root',
'pass'=>'***',
'db'=>'amarok',
);
use DBI;
$dsn = 'DBI:mysql:'.$mysql_config{'db'}.':'.$mysql_config{'host'};
$db_user_name = $mysql_config{'user'};
$db_password = $mysql_config{'pass'};
$dbh = DBI->connect($dsn, $db_user_name, $db_password) or die "Couldn't connect to database: " . DBI->errstr;
print "Search for Artist: ";
$artist = <STDIN>;
chop $artist;
print "\n";
$sth = $dbh->prepare('SELECT * FROM `amarok`.`artist` WHERE `name` LIKE ?');
$sth->execute("%$artist%");
while (@ary = $sth->fetchrow_array())
{
print "[id]=>'$ary[0]'\t[name]=>'$ary[1]'\n";
}
$sth->finish();
Alles anzeigen
Das funktioniert auch bis auf das ich die Werte nicht als $ary['id'] oder $ary['name'] ansprechen kann.
Was muss ich anstatt «$sth->fetchrow_array()» verwenden damit der array die spalten namen als indexes hat? Ich muss wahrscheinlich noch %ary verwenden :).
Leider kann ich da nichts finden. Habe noch keine Klassen definition gefunden wie es sie auf php.net für php Klassen gibt.
Gruss ::RMB::