我有一个包含超过20,000个帖子的数据库。大多数帖子都有签名:
像这样:If in my dreams is the only
place i can hould u !
Then i want to sleep forever !!
Me:bb:272F9F64
所以我想打印我的数据库中包含签名的所有帖子(Me:PIN:272F9F64)
所有这些签名都以(PIN:或PIN)开头,它们是8位数字和alphabit。
我使用此代码打印它们但它无法正常工作
$get_tit = $db->query("select id,name from brd limit 1000");
while($th=$db->fetch($get_tit)){
if (preg_match("/PIN:[0-9a-zA-Z]+/", $th['name'])) {
echo $th['name']."<br>";
}
}
更新 **
此循环代码抛出数据库并删除帖子中的任何签名
$get_tit = $db->query("SELECT id, name FROM brd LIMIT 1000");
echo 'Results Found :'.mysql_num_rows($get_tit).'<br /><br />';
while($th=$db->fetch($get_tit)){
$result = mysql_query("UPDATE brd SET name=LEFT(name,LENGTH(name)-12) WHERE name REGEXP 'PIN:[0-9a-zA-Z]{8}$' and id='$th[id]'") or die(mysql_error());
}
但它仍然无法使用签名
任何帮助伙伴
Bbway
答案 0 :(得分:0)
尝试此查询:
SELECT id, name, FROM brd WHERE name REGEXP 'PIN:?[0-9a-zA-Z]{8}$' LIMIT 1000
答案 1 :(得分:0)
这可以在MySQL中轻松完成:
SELECT id, name FROM brd WHERE name REGEXP 'PIN:[0-9a-zA-Z]+$' LIMIT 1000
你确定name
是包含帖子的字段吗?我不知道你的数据库是如何设计的,但我个人认为我有name
作为用户名,content
作为帖子的内容。确保您拥有正确的字段名称。
答案 2 :(得分:0)
尝试将m修饰符添加到preg匹配中。它打开了多线模式。