0

那里。我正在从 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'];
    }
4

1 回答 1

0

Something you're going to want to do is get PDO to throw exceptions. They're much harder to miss than warnings and errors.

Here's the PDO constructor I use...

$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));

Now, assuming your query actually works, it's only going to return one row with one column so try the following

$stmt = $con->query('SELECT MIN(LEAST(L1_RMS, L2_RMS, L3_RMS)) AS menor_valor FROM afunda_eleva');
$menor_valor = $stmt->fetchColumn();
于 2013-10-03T05:21:52.427 回答