那里。我正在从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'];
}
答案 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();