如何使用PHP从我的数据库中获取特定值

时间:2016-04-11 17:36:31

标签: php mysqli

我觉得这是一个容易解决的问题,但我找不到答案。我正在尝试从我的数据库中获取特定值,然后将其打印到屏幕上,但我一直收到以下错误:

Object of class mysqli_result could not be converted to string

我很确定这是因为我要求整行而不是值。我只是不确定如何解决它,我尝试了一些选项,但没有任何作用。我的代码:

<?php
  $host = 'localhost';
  $user = 'root';
  $pass = '';
  $db = 'mydatabase';

  $connection = new mysqli ($host, $user, $pass, $db) or die ("Databse connection failed");
  $sql = "SELECT waitlist_text FROM texts";

  $waitlist_text = $connection->query($sql);

  echo $waitlist_text
?>

数据库表名为'texts',有2列:'id''waitlist_text'。我想在id 1

上的列waitlist_text下面的文本

5 个答案:

答案 0 :(得分:3)

是的,查询会生成MYSQLI个对象。您必须实际使用另一个MYSQLI函数来获取所述数据。

例如:

  <?php 
    $result = $connection->query($sql);
    while($row = $result->fetch_rows()){
     print_r($row);
     //In this case, you can acces results like this: echo $row[0]."<br/>";
    }
  ?>

http://php.net/manual/en/class.mysqli-result.php

有关此主题的更多信息,请参阅上述来源。获取值的方法有很多,例如,使用fetch_assoc()代替fetch_row()fetch_assoc()使您可以访问您的字段(与之前相同的while循环),如下所示:$row['columnname']

请参阅本页的示例#1并将您自己的功能与它进行比较。它可能会帮助您学习: http://php.net/manual/en/mysqli-result.fetch-row.php

答案 1 :(得分:2)

使用where where条件,绑定参数并执行 例如:

$sql = 'SELECT waitlist_text FROM texts WHERE id = :idparm';
$id = 1;
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$sth = $dbh->prepare($sql);
$sth->bindParam(':idparm', $id, PDO::PARAM_INT);
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);

或:

while ($result = $sth->fetch(PDO::FETCH_ASSOC))
  echo $result['waitlist_text'];    

答案 2 :(得分:-1)

你是对的,你得到的所有结果,而不仅仅是你正在寻找的结果。为了获得您正在寻找的结果,您需要调用fetch_assoc()来获取第一个结果的数组。在这种情况下,$row将是一个数组,其中包含您从表中选择的列名称索引下选择的所有值。它看起来像这样:

$row = $waitlist_text->fetch_assoc();
echo $row["waitlist_text"];

答案 3 :(得分:-1)

尝试

echo $waitlist_text->fetch_row()[0]

根据PHP manualfetch_row将当前行作为数组获取,然后您可以打印第一个元素,即waitlist_text

答案 4 :(得分:-1)

<?php
  $host = 'localhost';
  $user = 'root';
  $pass = '';
  $db = 'mydatabase';

  $connection = new mysqli ($host, $user, $pass, $db) or die ("Databse connection failed");
  $sql = "SELECT waitlist_text FROM texts";

  $waitlist_text = $connection->query($sql);

  while($row = $waitlist_text->fetch_assoc()) {
      echo $row["waitlist_text"];
  }
?>