3

これが私のコードです:

$sql = "SELECT `description` FROM `auctions` WHERE `description` REGEXP '[0-9]{10}'";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
  echo $row["description"];
}

これはフィールド全体を返しますdescription。REGEXPに一致する部分を取得する必要があります。phpを使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

1
$sql = "SELECT `description` FROM `auctions` WHERE `description` REGEXP '[0-9]{10}'";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
    preg_match('/\d{10}/', $row["description"], $match);
    echo $match[0];
}
于 2013-01-22T08:31:58.057 に答える
0

これを試して:

$results = array();
$sql = "SELECT `description` FROM `auctions` WHERE `description` REGEXP '[0-9]{10}'";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
    // Checks for a match in the description and capture the match to $match
    preg_match("/[0-9]{10}/", $row['description'], $match);

    // Save the complete match (the ten digits) to the results array.
    $results[] = $match[0];
    // Or just echo them
    echo $match[0];
}

ちなみに、特にSQLインジェクションを防ぐために、プリペアドステートメントも確認する必要があります。

于 2013-01-22T08:35:14.360 に答える