我正在尝试从MySql数据库中获取三列。我能够获取内容,但这不是我需要的。我只需要将内容作为字符串数组,以便我可以使用它们来填充我的java代码中的列表视图。
我脚本的当前回复是:
{ ["UID"]=> string(1) "1" ["UserName"]=> string(7) "abc@123" ["Subject"]=> string(15) "My Android Post"}object(stdClass)#4 (3) { ["UID"]=> string(1) "2" ["UserName"]=> string(7) "abc@123" ["Subject"]=> string(15) "My Android Post"}
我需要一些如下所示的字符串数组或列表:
1 abc@123 My Android Post
2 abc@123 My Android Post
如何只获取PHP中存储在列中的值。我是PHP脚本的新手,所以请帮我解决这个问题。
我当前的PHP脚本如下所示:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "iFocusBlogs";
$obtainedUserName = 1;
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'";
$result=mysqli_query($conn,$sql);
while($obj = $result->fetch_object()){
var_dump($obj);
}
$conn->close();
?>
请让我知道我需要在脚本中进行哪些更改才能获取列的内容。欢迎所有建议。在此先感谢。
答案 0 :(得分:2)
使用fetch_array
代替fetch_object
。
您可能需要进行一些额外的修改才能完全按照您的意愿获得阵列,但至少它距离更近。
如果指定MYSQL_NUM
作为第二个参数,您将得到一个没有键和数字索引的数组。该阵列足够干净,可以进一步处理。
您可以使用for循环输出数组...
foreach($array as $item) {
echo $item . '<br>';
}
或使用implode()
...
echo implode($array);
或使用json_encode()
...
echo json_encode($array);
这完全取决于你想要如何显示你的数组。
print_r
和var_dump
等函数对于检查数组和其他变量的内容很有用,但不太可能以外部程序可用的格式输出该内容。
答案 1 :(得分:2)
您可以访问对象'->'
符号
$tCont="";
while($obj = $result->fetch_object()){
//var_dump($obj);
$tCont.='<tr><td>'.$obj->UID.'</td><td>'.$obj->UserName.'</td><td>'.$obj->Subject.'</td></tr>';
}
echo $tCont;
答案 2 :(得分:2)
您也可以使用mysqli_fetch_row()
/* fetch associative array */
while ($row = mysqli_fetch_row($result)) {
printf ("%s (%s)\n", $row[0], $row[1]).PHP_EOL;
}
尝试更新
$query="SELECT UID, UserName, Subject FROM AndroidTable WHERE Status ='" .$obtainedUserName. "'";
if ($result = $conn->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)\n", $row["UID"], $row["UserName"],$row["Subject"]);
}
}
答案 3 :(得分:1)
更改您的select语句,可能会连接列:
$sql="SELECT CONCAT (UID,' ' , UserName,' ', Subject) AS myresult FROM AndroidTable WHERE Status =" . $obtainedUserName ;
$result = $conn->query($sql);
使用fetch_assoc并打印每一行:
while($row = $result->fetch_assoc()){
echo $row['myresult'];
}