我觉得这是一个容易解决的问题,但我找不到答案。我正在尝试从我的数据库中获取特定值,然后将其打印到屏幕上,但我一直收到以下错误:
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下面的文本答案 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 manual。 fetch_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"];
}
?>