在php中从mysql中检索值

时间:2014-07-21 15:15:50

标签: php mysql arrays

我正在尝试从我的表中检索数据,此时只是将其回显到屏幕上。当执行此函数时,它确实获得了print_r($result)向我显示的所有数据 数组中的数据。但是,当我尝试回显数组时,我得到Warning: mysql_fetch_assoc() expects parameter 1 to be resource, array given in .... line xxx,其中xxx是行while ($row....

相当新的PHP,我在这里搜索了这个错误并发现了不少点击,但没有一个解决了我的问题。提前谢谢。

<?php
private
function vinSearch($vin_number)
    {
    if ($this->databaseConnection())
        {

        // Gather data based on Vin #

        $this->db_connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
        $query_locate_customer = $this->db_connection->prepare('SELECT * FROM C_Customer , C_Car WHERE C_Car.vin_number=:vin_number and C_Car.id = C_Customer.id');
        $query_locate_customer->bindValue(':vin_number', $vin_number, PDO::PARAM_STR);
        $query_locate_customer->execute();
        $result = $query_locate_customer->fetchAll() or die(mysql_error());
        print_r($result);
        while ($row = mysql_fetch_assoc($result))
            {
            echo $row['First_Name'];
            echo $row['Last_Name'];
            echo $row['Vin_Number'];
            }
        }
    }

3 个答案:

答案 0 :(得分:2)

您正在混合使用不同的数据库库:PDO用于连接/查询,然后是过时/已弃用的mysql_*()函数以实际获取数据。

数据库库 NOT 可以互换,并且在其中任何一个中执行的连接/操作完全没用。

你已经开始使用PDO,坚持使用PDO。由于您在PDO中完成了fetch_all()调用,因此$result已经是一个包含所有结果行的数组。你根本不需要mysql_fetch_assoc(),只需要一个foreach循环:

$result = $query blah blah blah;
foreach($result as $row) {
   ....
}

答案 1 :(得分:0)

如果它已经是一个数组,你应该使用类似这样的东西而不是while循环

foreach($result as $row) {
  echo $row['First_Name'];
  echo $row['Last_Name'];
  echo $row['Vin_Number'];
}

答案 2 :(得分:0)

请尝试以下

print_r($result); 

以及错误是什么:

if($result === FALSE) {
    die(mysql_error()); // TODO: better error handling
}

也尝试在phpmyadmin中执行SQL查询。