我有一个列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
我做错了什么?
答案 0 :(得分:1)
如果我理解你要做什么,你甚至不使用正则表达式。只需检查WHERE phone = '$newNumber'
,或者如果您希望更具包容性,请{.1}}。
此外,您必须知道当前版本的PHP中没有mysql_*
functions,已被弃用了6年,并且向您展示critical security vulnerabilities。在你的网站上给我30秒,我将转储你的整个用户表。