php - 正则表达式 - 让任何不是 ' 或 ; 的字符通过

标签 php mysql regex

我正在尝试学习正则表达式,但我找不到一种方法来让任何字符(字母、数字、空格、_ 或特殊字符,如 é、à 等)但我不让任何可能导致 MySQL 注入(inject)的东西通过,例如 ' 或 ;。有办法吗?

我试过:

if (preg_match("/^[^0-9][A-z0-9_]$/", $name)) {
    echo "YAY IT WORKED!";
}

但是可惜那天没有回音

最佳答案

使用Prepared Statements避免 SQL 注入(inject)。

If an application exclusively uses prepared statements, the developer can be sure that no SQL injection will occur

如何使用

$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

关于php - 正则表达式 - 让任何不是 ' 或 ; 的字符通过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23124534/

相关文章:

javascript - 有没有办法阻止 sequelize sync() 添加特定的外键?

MYSQL:Where子句不明确

javascript - CoffeeScript RegEx 列表理解与字典对象/数组

python - 获取仅以空格开头的数据正则表达式 - Python

PHP - 我们应该在 session 中包含哪些数据?

php - mysql: 不能将 max_allowed_pa​​cket 设置为任何大于 16MB 的值

PHP 为 SDK 使用工厂模式

php - 无法在数据库中插入新值

MySQL JOIN 在 1 个大表和多个小表上的性能

javascript - 图像的正则表达式未返回预期值