从单个字符串的数据库中检索PHP

时间:2015-06-20 10:16:52

标签: java php sql regex stringbuilder

我使用这些代码行从SQL数据库中检索数据

$username = $_POST['username'];
$selector = "SELECT * FROM client_table WHERE SalesmanID ='" . $username . "';";
$result = mysqli_query($con,$selector);

while($row = mysqli_fetch_array($result)) {
    echo  $row['ID'] . "/" . $row['Name'] .  "/" . $row['Address'] .  "/" . $row['Zip Code'] .  "/" . $row['SalesmanID'];
    echo "\\r\\n";
}
?>

在Java方面我做

while ((bufferedStrChunk = bufferedReader.readLine()) != null) {
    stringBuilder.append(bufferedStrChunk);
}

String queryResult = stringBuilder.toString();

问题是我什么时候

String[] results=queryResult.split("\n");

字符串未拆分。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

stringBuilder检索数据时,您没有向bufferedReader添加任何行分隔符

stringBuilder.append(bufferedStrChunk).append(System.lineSeparator())

无论如何,如果你想获得某种集合中的所有行,那么你可以简单地使用

List<String> lines = Files.readAllLines(Paths.get("pathToFile"));

对于BufferedReader,您也可以使用(自Java 8开始)

List<String> lines = br.lines().collect(Collectors.toList());

答案 1 :(得分:1)

在PHP代码中,您使用\转义\\,使\附加字符串 - 字符后跟n - 字符 AND 在Java代码中,您将按新行char \n进行拆分。这可能是问题的原因。

尝试使用转义\

String[] results=queryResult.split("\\\\n");
//EDITED: String[] results=queryResult.split("\\n"); //In comment informed that; to escape '\' we need to use four '\\\\'

这应该有效。