我还是PHP新手。我已经尝试了一些方法,但是我无法使其正常工作。
问题:我希望将users
表中的所有数据都存储在字符串中,并以逗号分隔。然后,当ID
为2
成为净新行的;
时,依此类推。如果有人可以帮助我。
$server = "localhost";
$user_name = "root";
$password = "";
$database = "users";
$conn = new mysqli($server, $user_name, $password, $database);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM Users;";
$result = $conn ->query($sql);
while($row = mysqli_fetch_array( $result )) {
$rows = implode (";",$result);
$array = $rows;
echo $array;
}
问题2:但是,如果我希望将DB数据的第一行分隔开,然后以;
结尾。我该怎么办?
输出:该代码的输出为:
Warning: implode(): Invalid arguments passed
答案 0 :(得分:2)
在调用ìmplode
时,您只是使用了错误的变量。
您已将所有列作为数组分配给$row
-但您正试图内爆$result
。
将该行更新为此:
$rows = implode(";", $row);
答案 1 :(得分:1)
比方说,您的用户表具有2个字段名字和姓氏。从您的问题中我了解到的是,您希望输出类似于
$array = ['steve,jobs;', 'mark,zukerberg;'];
要实现此目的,您可以在字符串的末尾附加';'。
while($row = mysqli_fetch_array( $result )) {
$rows = implode(',',$row) . ';'; //you have named this variable $rows but it is going to have data of a single row
$array = $rows; //you could directly var_dump($rows) instead of assigning it to a new variable
echo $array; //you could rather use var_dump($array) for this
}