我刚开始在本地驱动器上使用数据库。我想知道如何使用正则表达式命令来搜索数据库中的数据。
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';
?>
欢迎任何反馈。我正处于学习这个的开始阶段。
答案 0 :(得分:4)
您可以在查询中使用REGEXP
。查看this资源,其中包含您需要的所有详细信息。
语法简单如下
$qry = "select * from aTable where someName REGEXP '$pattern'";
答案 1 :(得分:3)
由于您使用的是MySQL,因此您可以使用MySQL的正则表达式支持,其中包括REGEXP
和NOT_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希望这有帮助!