我有以下代码从数据库中检索信息。它连接到数据库,但当我尝试显示信息时,我什么也看不见。我只能得到 虚线。我认为问题出在while循环中,我只是看不出我的错误在哪里。谁能帮忙?
$connection = mysql_connect("127.0.0.1","root","xxxxxxxx");
if (!$connection)
{
printf("Can't connect to MySQL Server.", mysqli_connect_error());
}
mysql_select_db('xxxxxx') or die ('Could not select database');
echo 'You have been connected succesfully to your database';
$query = "SELECT *FROM testing";
$result = mysql_query($query) or die("Query fail:".mysql_error());
while ($row = mysql_fetch_array($result));
{
echo $row['age']."--".$row['sex']."--".$row['id']."--".$row['country']."--".$row['sport']." ";
}
?>
答案 0 :(得分:1)
您应该在;
之后删除分号(while(...)
),因此您的最终代码将如下所示:
while ($row = mysql_fetch_array($result))
{
echo $row['age']."--".$row['sex']."--".$row['id']."--".$row['country']."--".$row['sport']." ";
}
您的while
循环({
和}
之间)中的任何内容都会被调用多次,因为很多行都会返回您的查询。例如,如果您的查询将返回4行,那么您的代码(echo ...
)将重复4次。在第一次运行中,变量$row["age"]
,$row["sex"]
,$row["id"]
和$row["country"]
将包含第一行的结果。在第二次运行时,这些变量将包含第二行的结果...
另外,请不要使用mysql_*
函数,它们是deprecated,将在未来的PHP版本中删除。请改用MySQLi
或PDO
。有关详细信息,请参阅Why shouldn't I use mysql_* functions in PHP?。
答案 1 :(得分:0)
我遇到了类似的问题,事实证明我的数据库中没有任何信息,而且我的一个值名称不正确。您能否确认数据库中有有效值?
答案 2 :(得分:0)
使用mysqli
$db = new mysqli("localhost","admin","XXXXXX","test");
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
$query = "SELECT * FROM `testing`";
if(!$result = $db->query($query)){
die('There was an error running the query [' . $db->error . ']');
}
// echo $result->num_rows; Uncomment to make sure there is data being ruturned
while($row = $result->fetch_assoc()){
echo $row['age']."--".$row['sex']."--".$row['id']."--".$row['country']."--".$row['sport']." ";
}