【问题标题】:Directly echo the resulting data show an error msg [duplicate]直接回显结果数据显示错误消息[重复]
【发布时间】:2015-10-13 10:34:10
【问题描述】:

当我回显 $result 变量时。它显示如下错误消息:

可捕获的致命错误:无法将类 mysqli_result 的对象转换为 D:\Inspiration\server\Table2_yahooData_db.php 中的字符串 在第 13 行

<?php
// connect to the dataBase
$conn = mysqli_connect('localhost', 'root', '', 'yahooData');

//checking Connection.
if (!$conn) {
    die('Error connection failed: ' . mysqli_connect_error($conn));
}

// Creating select query Using sql commands.
$sql = "SELECT * FROM User;" ;
$result = mysqli_query($conn, $sql);

echo $result;

mysqli_close($conn);
?>

【问题讨论】:

  • $sql = "SELECT * FROM User"; 。不需要;
  • 你不能 echo $result intead do if($result){echo "something"}
  • 我想展示 $result 的价值。 #天空

标签: php mysqli


【解决方案1】:

$result 是一个对象。

你不能用字符串的echo函数打印它。

您可以使用print_r($result); 打印它

echo 用于标量变量(具有单值或单维),例如数字、字符串。对于多维变量,例如数组,我们需要使用 print_r() 的对象,它会打印整个树。

【讨论】:

  • 为什么我不能打印 $result 变量使用 echo。?是的 print_r 函数打印 $result 变量。
  • echo 用于标量变量(具有单值或单维),例如数字、字符串。对于多维变量,例如数组,我们需要使用的对象print_r() 打印整个树)。
【解决方案2】:

使用SELECT 查询时,mysqli_query() 函数返回resource,而不是字符串。您需要使用mysqli_fetch_assoc() 将结果放入数组中。下面是一个面向对象的例子:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT name FROM User";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        echo $row['name'];
    }

    /* free result set */
    $result->free();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多