06. februar 2008 - 23:29Der er
10 kommentarer og 1 løsning
Skadelig Data
Findes der et Perl-alternativ til PHP-metoderne addslashes() og stripslashes(), eller SKAL man bruge RegEXP for at fjerne enkelte citationstegn ('), dobbelte citationstegn ("), backslash (\) og NUL (NULL byte) ? På forhånd tak!
mysql_real_escape_string er nu klart at foretrække fremfor mysql_escape_string, af hensyn til multibyte-tegnsæt - men eneste grund til man bør bruge escaping i det hele taget, er hvis man ikke har adgang til parameters. Det er før set at databasernes escaping-funktioner indeholder fejl (både MySQL og PostgreSQL har haft dette).
I øvrigt bruger spørger Perl, ikke PHP - han vil bare gerne have nogle alternativer til det han kender ;)
use DBI; # connect my $con = DBI->connect('DBI:mysql:host=localhost:database=Test','','') or die DBI->errstr; # display all rows my $stmt = $con->prepare('SELECT * FROM t1') or die $con->errstr; $stmt->execute; while(@row = $stmt->fetchrow_array()) { my $f1 = $row[0]; my $f2 = $row[1]; print "$f1 $f2\n"; } # insert new row my $stmt = $con->prepare('INSERT INTO t1 VALUES(?,?)') or die $con->errstr; $stmt->execute(6,'FFFFFF'); # display all rows again my $stmt = $con->prepare('SELECT * FROM t1') or die $con->errstr; $stmt->execute; while(@row = $stmt->fetchrow_array()) { my $f1 = $row[0]; my $f2 = $row[1]; print "$f1 $f2\n"; } # disconnect $con->disconnect;
arne_v <- Helt sikkert...anede ikk at Perl DBI understøttede parametre som f.eks. C# .NET. Mange tak for hjælpen ! Kom med et svar, så du kan få din points :)
De fleste sprog understoetter prepared statements / parameters.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.