获取全部”;用户名";及;id";在MySQL数据库中使用php进行拆分

获取全部”;用户名";及;id";在MySQL数据库中使用php进行拆分,php,mysql,Php,Mysql,我有像这样的MySQL数据库 id........username 1 .......rap 2 .......dafy 3 .......kay 我想把它们做成这样 username-id,username-id,use... 例如 rap-1,dafy-2,kay-3 代码应该使用参数来阻止sql注入,但我不知道如何编写代码。使用此查询获得结果: <?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT

我有像这样的MySQL数据库

id........username  
 1 .......rap
 2 .......dafy
 3 .......kay
我想把它们做成这样

username-id,username-id,use...
例如

rap-1,dafy-2,kay-3

代码应该使用参数来阻止sql注入,但我不知道如何编写代码。

使用此查询获得结果:

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("database","my_user","my_password","my_db");


// Obviously change this to match yours
$sql = "SELECT GROUP_CONCAT(CONCAT(username , '-',id) SEPARATOR ',') as grp FROM table";
$result =  $mysqli->query($sql);
$final_result = []
while($row = $result->fetch_assoc())
{
    array_push($final_result, $row['grp']);
}


$mysqli -> close();
SELECT GROUP_CONCAT(CONCAT(`username` , '-',`id`) SEPARATOR ',')
FROM table1;
结果

GROUP_CONCAT(CONCAT(`username` , '-',`id`) SEPARATOR ',')
rap-1,dafy-2,kay-3 .
带有PDO的PHP代码示例:

<?php
  $pdo = new PDO('mysql:host=localhost;dbname=databasename', 'username', 'password');
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $sql = "SELECT GROUP_CONCAT(CONCAT(`username` , '-',`id`) SEPARATOR ',') user FROM Table1";
  foreach ($pdo->query($sql) as $row) {
   echo $row['user']."<br />";
  }
  $pdo ->close();

所以您只想获取所有行并将它们的id和用户名连接在一起?
从表中选择concat(username,'-',id)
是,代码应该使用param,输出应该像“rap-1,dafy-2,kay-3”一样致命错误:在null上调用成员函数query()……您为什么在不同的文件中调用数据库函数?或者你是在一个函数中这么做的,读一下,在你调用这个程序的函数中。全局$database\u variable显然,将database\u variable更改为variableGROUP的实际名称:CONCAT也有optionI的订单。我个人喜欢发现我自己,当然我不知道你想要什么。这是可行的,但请注意,包含
-
的用户名可能会破坏消费者。最终,这些人必须首先逃脱。一般来说,如果您可以访问所有使用者,则使用不同的数据格式,并具有更高的结构,可能会更明智。@johannes这也适用于逗号和-请参见@nbk yes,它可以生成它,但很难解析,再次。。。