如何在mySQL数据库中安全地插入代码

Ste*_*gen 5 php mysql

我正在建立一个网站,用户可以使用PHP和mySQL数据库存储代码片段.但我无法弄清楚如何安全地将用户输入的代码插入我的数据库.我无法使用我通常使用的"安全"功能(trim,stripslashes等)来转换输入,因为重点是您可以查看在数据库中输入的代码.我看了my_real_escape_string(),但我看到,它并没有逃脱%和_,这可以作为MySQL的通配符.这会构成威胁,还是我可以使用my_real_escape_string?Thanx提前.

Tre*_*non 6

通配符仅在SELECT查询中使用时生效,然后仅在使用某些函数时生效.因此,为了插入代码,可以使用,mysql_real_escape_string()因为它们没有任何效果.

为了更好,我建议您使用PHP PDO,以便您可以使用参数绑定.以下示例来自PHP手册:

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
Run Code Online (Sandbox Code Playgroud)