SQL 错误可捕获的致命错误:stdClass 类的对象无法转换为字符串

Posted

技术标签:

【中文标题】SQL 错误可捕获的致命错误:stdClass 类的对象无法转换为字符串【英文标题】:SQL error Catchable fatal error: Object of class stdClass could not be converted to string 【发布时间】:2017-01-11 05:14:51 【问题描述】:
function getjobid() 
global $geotag_table, $wpdb;
$qry = "SELECT * FROM mirdc_jo_form WHERE  jo_id = (SELECT MAX(jo_id)  FROM mirdc_jo_form)";
$desc = $wpdb->get_results($qry);

return $desc; 

你们能帮帮我吗..我正在尝试从我的表格中获取 id 并尝试将数据显示给我的 wordpress..

<?php  foreach (getjobid() as $generatedid) 
echo $generatedid;?>  #<------ this is the error                       

这是我的 wordpress 代码.. 你能教我如何将对象转换为字符串.. 将结果显示给我的 wordpress。

【问题讨论】:

错误是不言自明的,您正在尝试回显对象。 &lt;?php $array_data = getjobid(); ?&gt; 现在先打印,然后相应地工作。显示使用打印此变量后得到的内容 请尝试 $desc = $wpdb->get_results($qry,ARRAY_A); 呃对不起对不起我只是一个初学者我如何将它转换为字符串? @manish jesani 错误消失了,但它显示“数组”.. @ElliJoshuaRey print_r($generatedid); 【参考方案1】:

请试试这是你的代码的面糊

function getjobid() 
global $geotag_table, $wpdb;
$qry = "SELECT jo_id FROM mirdc_jo_form WHERE  jo_id = (SELECT MAX(jo_id)  FROM mirdc_jo_form)";
$desc = $wpdb->get_col($qry);

return $desc[0]; 
$lastid = getjobid();

【讨论】:

ohhhhh... @ElliJoshuaRey 您的查询 SELECT * FROM mirdc_jo_form ......您从数据库表中获取所有字段,但您只需要一个字段“jo_id”。那你为什么要得到所有领域。因此您的信息会因大型数据库而异,您会从数据库中获得一个字段 mysql 查询快速响应,否则您的网站会慢.... ohhhhhhhhhhh isee thx 为您提供的信息,我将永远记下它:D sr 我有一个问题.. 如果我的桌子上没有价值怎么办.. 如果我的桌子上没有数据。我想要值为 1.. 尝试一个 if 语句,但它有错误if (!$lastid) echo "Ther is no data"; echo $val1; else foreach ($lastid as $row) $auto = $row-&gt;jo_id; if ($auto === '') echo "There is no id!"; else echo $auto; 错误的部分是当我的桌子上有一个值时,它给了我很多9999999(我的最后一个 id 是 9)为什么它给了我这么多 9? 愚蠢的我 xD 为什么当我已经得到 jo_id if (!$lastid) echo "Ther is no data"; echo $val1; else echo $lastid-&gt;jo_id; 时我还要放置一个 foreach 语句【参考方案2】:

$generatedid 是一个Object 并包含整行数据。您需要从该行中指定您想要的列。

您应该尝试var_dump($generatedid) 来查看所有数据。

foreach (getjobid() as $generatedid) 
    echo $generatedid->jo_id; // or whatever ID you want from DB 

【讨论】:

OWWW 我明白了:(我太菜鸟了 THX SR T_T 我之前试过 ---- echo $generatedid["jo_id"];但这是错误的 这是一个对象,你应该试试$generatedid-&gt;jo_id 我是新来的,当我不懂编程时,它对我有很大帮助:D 如果我有问题,很多人都想帮忙.. 这是我们所有人的学习阶段。每个人在某个时间点都是新的。保持精神,继续前行。祝你一切顺利。 :)

以上是关于SQL 错误可捕获的致命错误:stdClass 类的对象无法转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:未捕获的错误:调用未定义的方法 stdClass::option();

PHP致命错误:未捕获的错误:不能将stdClass类型的对象用作数组

可捕获的致命错误:在 json_decode

可捕获的致命错误:类 mysqli_stmt 的对象无法转换为字符串

可捕获的致命错误:类 AppBundle\Entity\Categoria 的对象无法转换为字符串

可捕获的致命错误:类Proxies的对象 __ CG __ AppBundle Entity Modelo无法转换为字符串