使用PDO从mysql中的表创建php数组

时间:2013-10-02 21:40:05

标签: php mysql pdo

那里。我正在从mysql迁移到PDO结构,并且在尝试使用foreach语句时遇到问题,如果我能得到一些帮助,我会很感激。不起作用的结构是:

foreach ($con -> query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva') as $array_min_afund)
{
$intensidade_elevacao[] = $array_min_afund['menor_valor'];
}

其中

$ con是我连接数据库的变量。 (工作正常)。

我运行时得到的错误是:

“为foreach()提供的参数无效”

问题是我在程序中使用了相同的结构,并且它有效。有谁知道这可能发生的原因?提前谢谢!

修改

$result = ($con -> query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva'));
while ($row = $result -> fetch_assoc())
    {
    $intensidade_elevacao[] = $row['menor_valor'];
    }

1 个答案:

答案 0 :(得分:0)

您要做的事情是让PDO抛出异常。他们比警告和错误更容易被遗漏。

这是我使用的PDO构造函数......

$con = new PDO('mysql:host=localhost;dbname=your_db_name;charset=utf8', 'username', 'password', array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_EMULATE_PREPARES => false,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC));

现在,假设您的查询确实有效,它只返回一行一列,请尝试以下

$stmt = $con->query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva');
$menor_valor = $stmt->fetchColumn();
相关问题