我从数据库查询结果中获取数据的所有尝试都给出了“未定义方法”错误

时间:2015-09-17 16:06:44

标签: php mysql pdo

我正在使用mySQL。无论我使用什么语法,我都无法获取查询结果。

连接到数据库工作得很好。 然后我创建了一个PDO,它也可以正常工作。

但是当我尝试查询数据库时,无论我做什么,我都会遇到各种错误。 (请参阅注释中的细节。)我知道我的结果很好,因为当我var_dump它们时,我看到数组并且它有数据。

//***********************************************
// Try to retrieve list of states
//**********************************************
try {
  $result = $db->query('SELECT * FROM state');

  echo '<pre> Test 1';
  //$test1 = $result->fetch_array(MYSQLI_NUM);    
  //gives error: undefined method 'fetch_array()''

  echo 'Test 2';
  //$test2 = $result->fetch(PDO::FETCH_ALL);        
  //gives error: Undefined class constant 'FETCH_ALL'

  echo 'Test 3';
  // $test3 = $result->fetch_all();                  
  //gives error: undefined method 'fetch_all()'

  echo 'Test 4';
  //$test4 = $mysqli->fetch_all();                 
  //gives error: undefined method 'fetch_all()'

  echo 'Test 5';
  $test5 = $result->fetch_assoc();                
  //gives error: undefined method 'fetch_assoc()'

  echo '</pre>';
} catch(Exception $e) {
  echo $e->getMessage();
  die();
}

我离开这里了吗?我在这个论坛上看到的一些东西表明了php版本的问题,但我本周刚刚下载了最新版本。我正在运行5.6.12版本。

确定 - 新信息

如果我运行以下代码,它可以完美运行:

$sql = $db->prepare('SELECT * FROM state');
$sql->execute();
$result = $sql->fetchAll(PDO::FETCH_ASSOC);

所以我的想法是,使用mySQL我总是必须使用prepare()和execute()方法,而query()方法是不够的。这是真的吗?

我也看不出它是如何复制的“我可以在PHP中混合MySQL API吗?”这是关于连接的问题,我的是关于从查询中获取结果。

0 个答案:

没有答案