从单元格获取数据

时间:2011-08-12 15:54:13

标签: php mysql row cell

我有一个名为“settings”的数据库表,在该表中我有2列。示例图片:

enter image description here

如您所见,第一列称为“ setting_name ”,第二列称为“ setting_value ”。

我该怎么做,所以每当我写下例子时:

echo $setting['ad_cost_micro'];

它会打印出来:

0.00200

顺便说一下。没有 while 声明可以吗?

3 个答案:

答案 0 :(得分:1)

我倾向于使用PDO和fetchAll()

$stmt = $db->prepare('SELECT `setting_name`, `setting_value` FROM `settings`');
$stmt->execute();
$setting = $stmt->fetchAll();
echo $settings['ad_cost_micro']; //Should output 0.00200.

注意:无论你使用什么, a while循环是不可避免的因为你必须循环遍历结果集(fetchAll())也这样做,同时,知道每个循环都是一个while循环(即使是循环!)。

答案 1 :(得分:1)

如果mysqli可用......

$mysqli = new mysqli(hostname, username, password, database);
$result = $mysqli->query('SELECT setting_name,setting_value FROM settings');

if ($result->num_rows > 0)
{
    $rows = $result->fetch_array();
    $setting = array();
    for($i = 0; $i <= $result->num_rows(); $i++)
    {
        $setting[$rows[$i]['setting_name']] = $row[$i]['setting_value'];
    }

    unset($rows);
    $result->free();
}
else
{
    // error handling
}

$mysqli->close();

编辑:删除而代替

答案 2 :(得分:0)

无法看到截图,但也许......

    $query = mysql_query("SELECT * FROM settings");
    while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
        $setting[$row['setting_name']] = $row['setting_value'];
    }