Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php RegEx:get错误';空(子)表达式';来自regexp_Php_Mysql_Regex - Fatal编程技术网

Php RegEx:get错误';空(子)表达式';来自regexp

Php RegEx:get错误';空(子)表达式';来自regexp,php,mysql,regex,Php,Mysql,Regex,我有一列phone,其中包含如下值: ["1740235959","9106597107","9369326058","9168187280","9393503006","9169124377","9378152001","9168176167","9385156441","9166118105","9166110676"] 找到了哪些电话 通过以下方式向客户端发送和接收结果: if ($tag=='getFriends'){ $tempArray = array(); for

我有一列
phone
,其中包含如下值:

["1740235959","9106597107","9369326058","9168187280","9393503006","9169124377","9378152001","9168176167","9385156441","9166118105","9166110676"]
找到了哪些电话

通过以下方式向客户端发送和接收结果:

if ($tag=='getFriends'){
    $tempArray = array();
    foreach ($_POST["phoneNumbers"] as $phoneNumber) {
        $friends = $db->getFriends($phoneNumber);
        array_push($tempArray,($friends));
    }
    echo json_encode($tempArray);
}
下面是我的
getFriends()
方法:

public function getFriends($phoneNumber){
    $newNumber = substr($phoneNumber, -10);
    $result = mysql_query("SELECT * FROM users WHERE phone REGEXP '$newNumber' LIMIT 1") or die(mysql_error());
    $rows = mysql_num_rows($result);
    if ($rows>0) {
    $result = mysql_fetch_array($result);
    $response["error"] = FALSE;
    $response["getFriends"]["real_name"] = $result["real_name"];
    $response["getFriends"]["name"] = $result["name"];
    $response["getFriends"]["email"] = $result["email"];
    $response["getFriends"]["is_online"] = $result["is_online"];
    $response["getFriends"]["in_game"] = $result["in_game"];
    $response["getFriends"]["status"] = $result["status"];
    $response["getFriends"]["user_unique_id"] = $result["user_unique_id"];
    }else {
        $response["error"] = TRUE;
    }
    return $response;

}
我得到的错误信息是:

Got error 'empty (sub)expression' from regexp

我做错了什么?

如果我理解您的意图,那么您甚至没有使用正则表达式。只需检查
WHERE phone='$newNumber'
,或者,如果您想更具包容性,请选择
WHERE phone,比如“%$newNumber%”


另外,您必须知道,当前版本的PHP中没有这些工具,它们已经被弃用了6年,并使您暴露在错误的环境中。在你的网站上给我30秒,我将转储你的整个用户表。

你想用
$newNumber=substr($phoneNumber,-10)实现什么?您的问题似乎与regex在
MySql
中的工作方式有关。看一看,OP似乎面临着同样的问题,提出的解决方案解决了这个问题。我首先考虑重构/规范化您的数据库。为什么要对这样的序列化结构化数据字符串执行正则表达式搜索,而不是将数据放入可以高效查询的表中?这似乎特别重要,因为如果您希望通过此电话字段建立朋友关系(即搜索朋友等),您当前的DB模式将非常低效,尤其是随着添加更多的朋友关系。您当前的查询根本无法使用索引。@mitkosoft将
09123456789
+989123456789
转换为
123456789
您能在这里发布
$\u post[“phoneNumbers”]
中的内容吗。代码总体上是好的,而且似乎工作正常。我很高兴我能给你7000多分