我的代码的目的是获取数据库中的所有用户名,并按升序回显它们,并在每个用户名之间中断。除了一行之外,它似乎工作正常。
当我运行此代码时,我收到错误
致命错误:第23行的C:\ wamp \ www \ Site files \ users.php中不支持的操作数类型
我在代码中突出显示了这一行,其中包含**。我已经尝试了很多方法来完成这项工作,但我不是特别称职,我似乎无法找到解决方案。
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="comproject"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$query = mysql_query("SELECT username FROM members ORDER BY username ASC") or die(mysql_error());
$count = mysql_num_rows($query);
$array = array();
while ($row = mysql_fetch_array($query, MYSQL_NUM)) {
$array[] = $row; }
for ($i=0; $count>$i; $i++) {
**echo $array[$i] + "<br/>";**
}
?>
另外我正在尝试将我的代码移到mysqli中,所以如果你对此有任何建议,也非常感谢:)我理解它几乎一样
答案 0 :(得分:5)
在PHP中,字符串使用.
而不是+
进行连接。尝试:
echo $array[$i] . "<br/>";
答案 1 :(得分:1)
更改为:
for ($i=0; $count>$i; $i++) {
echo $array[$i][0] . "<br/>";
}
问题是:
.
以及$array[$i]
是一个数字索引数组,第一个元素是用户名: $array
是:
Array
(
[0] => Array
(
[0] => UsernameOne
)
[1] => Array
(
[0] => UsernameTwo
)
)
答案 2 :(得分:0)
使用.
而非+
连接字符串:
echo $array[$i]."<br/>";
答案 3 :(得分:0)
尝试使用mysqli(注释中描述的代码):
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="comproject"; // Database name
$tbl_name="members"; // Table name
// Connect to server and select databse.
$mysqli = new mysqli("$host", "$username", "$password");
//check connect error
if (mysqli_connect_errno()) {
printf("Connection failed: %s", mysqli_connect_error());
exit();
}
// run query
$result = $mysqli->query("SELECT username FROM members ORDER BY username ASC");
//fetch data
while($row = $result->fetch_array())
{
echo $row['username']."<br />";
}
/* free result set */
$result->close();
/* close connection */
$mysqli->close();