检查SQL输入是否是有效的SQL

时间:2014-02-04 16:17:39

标签: php

是否有正则表达式来检查字符串是否有效SQL?它必须与PHP兼容。我的代码。

if(!preg_match("regular expression", $_POST['sql_input']){
    echo "Please enter valid SQL.";
    exit;
}

3 个答案:

答案 0 :(得分:0)

  

您可以尝试使用此库:http://code.google.com/p/php-sql-parser/。   我还没有使用它所以我不能保证它,但代码看起来像   它将能够区分有效和无效的SQL之间的区别。

     

如果您的SQL变体允许,另一种选择可能是使用事务   它。事务将允许您执行SQL然后取消   它之后扭转了所造成的任何伤害。我想我会的   更喜欢选项1。

我引用戈德温。 Source

答案 1 :(得分:0)

简单的回答。你不想做什么。

您需要SQL Parser来检查语句是否有效。

点击此处:http://www.dpriver.com/blog/list-of-demos-illustrate-how-to-use-general-sql-parser/vendor-specific-offline-sql-syntax-check/

答案 2 :(得分:0)

不,这是不可能的。但是如果你想保护自己免受SQL注入攻击,你应该使用其他机制。

例如参见:https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php