我如何使用正则表达式使用PHP搜索数据库?

时间:2015-06-24 15:12:47

标签: php mysql sql regex database

我刚开始在本地驱动器上使用数据库。我想知道如何使用正则表达式命令来搜索数据库中的数据。

PS:我是初学者,自上周以来我刚刚开始编码。

到目前为止我的代码:

<?php
error_reporting(0);
session_start(oid);
    require 'view/header.php';
?>

<?php

?>

<form action="" method="post">
    <h4>Insert a regex command below</h4>
    Regex: <input type="text" name="regex"/>
    <input type="submit" value="Search"/><br/><br/>
</form>

<?php
    $regex=$_POST["regex"];

    if(!empty("regex")) { 
        if(preg_match($regex, "Hello, my name is Hasan!")) {
            echo "That is correct";
        } else {
            echo "That is incorrect";
        }
    }
?>

<?php
    require 'view/footer.php';
?>

欢迎任何反馈。我正处于学习这个的开始阶段。

3 个答案:

答案 0 :(得分:4)

您可以在查询中使用REGEXP。查看this资源,其中包含您需要的所有详细信息。

语法简单如下

$qry = "select * from aTable where someName REGEXP '$pattern'";

答案 1 :(得分:3)

由于您使用的是MySQL,因此您可以使用MySQL的正则表达式支持,其中包括REGEXPNOT_REGEXP运算符。以下是来自MySQL的一些信息:

  

MySQL使用Henry Spencer的正则表达式实现,旨在与POSIX 1003.2保持一致。 MySQL使用扩展版本来支持在SQL语句中使用REGEXP运算符执行的模式匹配操作。

更多信息在MySQL Reference Manual section on Regular Expressions上。

答案 2 :(得分:0)

您可以先从数据库中返回所有行,然后在PHP中过滤掉所有行。或者您可以使用MySQL语法直接过滤查询。这是关于MySQL正则表达式的资源 - http://java.dzone.com/articles/mysql-regexp-regular希望这有帮助!