如何使用" SELECT *"回显特定列名称query,get_result() - MySQLi

时间:2016-10-25 19:13:14

标签: php mysqli fetch associative-array

我有以下代码:

public static function selectBy(Database $database, $columnName, $value){
    $connection = $database->getConnection();

    $stmt = $connection->prepare('
    SELECT * FROM `Logs`
    WHERE ' . $columnName . ' = ?;');
    $stmt->bind_param('s', $value);
    $stmt->execute();
    $result = $stmt->get_result();
    while($row = $result->fetch_assoc()){
        $finalResult[] = $row;
    }
    return $finalResult;

它的实施:

$logsArray = Log::selectBy($this->database, "ID", "423");
    foreach($logsArray as $key=>$logArray){
        foreach($logArray as $anotherKey=>$log){
            echo $log . "<br />";
        }
    }

我试图找到一种方法来仅定位我们从数据库返回的特定行字段,例如,仅回显返回的第一个日志的IP。 另一个例子是将我们返回的所有字段分配给Log对象,将一个字段分配给一次变量,或者同时分配所有字段。 结果将是一行对象,类型为&#34; Log&#34;这反映了数据库中的内容。

我遇到的另一个问题是我在fetch_assoc()返回的二维数组的每一行中都有一个额外的字段,它被称为&#34;数组+一个递增的数字&#34;,例如: 数组0 数组1 数组2 显然它是第一个数组中的数组编号,默认情况下使用foreach它会覆盖它。 有没有办法用foreach忽略它?或者首先删除/避免插入它们?

提前致谢。

0 个答案:

没有答案