1

我连接到数据库,一切都是正确的,我做了选择,一切都是正确的。但是当我试图获取所有行时问题就来了。我尝试了所有 mysql_fetch...(数组,关联...)

$registros = mysql_query("SELECT * FROM  22bf654e4dfa688d0ec6add2f6f7bf76", $con);
$reg = mysql_fetch_array($registros);

if( ($reg)
{
    echo $reg;

}
4

3 回答 3

4

请记住mysql_库已弃用,您应该使用 PDO 或 MySQLi。

使用 PDO,您的代码将如下所示:

<?php
// Your database info
$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';

$con = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_pass);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM  22bf654e4dfa688d0ec6add2f6f7bf76";
$result = $con->prepare($sql);
$result->execute();

$reg = $result->fetchALL(PDO::FETCH_ASSOC);
$con = NULL;        
print_r($reg);
// To show just one row you can use:
print_r($reg[0]);
// So let's say you have a field called "name", then u could use:
echo $reg[0]['name'];

您需要遍历结果,这会将所有数据存储到一个数组中$reg

<?php
// your database info here
$db_host = '';
$db_user = '';
$db_pass = '';
$db_name = '';

$conn = mysql_connect($db_host, $db_user, $db_pass);    
if (!$conn)
{
    die("Unable to connect to DB: " . mysql_error());
}

if (!mysql_select_db($db_name))
{
    die("Unable to select {$db_name}: " . mysql_error());
}

$sql = "SELECT * FROM  22bf654e4dfa688d0ec6add2f6f7bf76";    
$registros = mysql_query($sql);
if (!$registros)
{
    die("Error: " . mysql_error());
}
$reg = array();
while ($row = mysql_fetch_assoc($registros))
{
    $reg[] = $row;
}

print_r($reg);
// To show just one row you can use:
print_r($reg[0]);
// So let's say you have a field called "name", then u could use:
echo $reg[0]['name'];
于 2013-09-22T21:06:19.440 回答
1

您应该使用mysqli而不是mysql,但这是另一个答案。

while($row = mysql_fetch_array($result)) {
    echo $row['column-name-here'];
}

这将遍历您查询的所有结果。如果你只有 1 个结果,它只会显示 1。如果你只想要 1 个结果,那么在你的查询中指定你想要的

SELECT * FROM table WHERE something = something;
于 2013-09-22T21:05:22.397 回答
0

$reg 是所有行的数组;您想使用 foreach 对其进行迭代,然后在每次迭代时使用 print_r 而不是 echo 因为那将是该行的列数组

如果你只想要第一行, print_r($reg[0])

但最好在查询中使用 where 子句或限制语句以获得更好的性能。不要返回比您需要的更多的数据。

于 2013-09-22T21:07:45.200 回答