尝试在 HTML 上显示时,PHP 函数给了我异常

Posted

技术标签:

【中文标题】尝试在 HTML 上显示时,PHP 函数给了我异常【英文标题】:PHP function giving me exception when trying to display on HTML 【发布时间】:2016-01-26 12:31:00 【问题描述】:

我在执行 SQL 语句和在我的 html 页面上打印结果时遇到问题。

这是函数:

function getFirstName($shId) 


$query  = 'SELECT sh_firstname';
$query .= 'FROM Shaddr';
$query .= 'WHERE shopper_id = ?';

$dbo = db_connect();

try 
    $statement = $dbo->prepare($query);
    $statement->bindParam(1,$shId,PDO::PARAM_INT);
    $statement->execute();

catch (PDOException $ex) 
    error_log($ex->getMessage());
    die("Errors encountered while obtaining first name");


return $statement;

这就是我试图在我的 HTML 中显示它的方式:

<?php 
$results = getFirstName(2);
echo $results;
?>

数据库连接正确,一切正常,因为我有其他工作查询。我得到的错误是“获取名字时遇到的错误”的异常。

这个函数有什么问题?

【问题讨论】:

您的mysql 表是什么样的? 如果您查看错误日志,您会得到更好的错误消息。 下次输出真正的错误或至少查看您的错误日志并从那里获取真正的错误消息。 【参考方案1】:

你需要space before FROM and WHERE子句

$query  = 'SELECT sh_firstname';
$query .= ' FROM Shaddr';
$query .= ' WHERE shopper_id = ?';

你需要从你的getFirstName()返回结果集

 try 
    $statement = $dbo->prepare($query);
    $statement->bindParam(1,$shId,PDO::PARAM_INT);
    $statement->execute();

catch (PDOException $ex) 
    error_log($ex->getMessage());
    die("Errors encountered while obtaining first name");


return $result = $statement->fetch(PDO::FETCH_ASSOC);

你得到你的价值

<?php 
$results = getFirstName(2);
print_r($results);
?>

【讨论】:

这给了我这个:Catchable fatal error: Object of class PDOStatement could not be convert to string in /home/ubuntu/workspace/delivery_details.php on line 27 Call Stack: 0.0001 232800 1. main() /home/ubuntu/workspace/delivery_details.php:0 你的db_connect()函数在哪里?? 我相信错误在于这一行:echo $results;因为没有它,页面不会出现错误(当然查询中没有显示任何内容) 非常感谢!!它现在确实显示“数组([sh_firstname] => Jane)”,而不仅仅是 Jane,但我会弄清楚的。

以上是关于尝试在 HTML 上显示时,PHP 函数给了我异常的主要内容,如果未能解决你的问题,请参考以下文章

尝试在自定义侧边栏上显示用户名,它给了我下面的错误消息

带有 MySql 冲突的 Docker 映像在启动时给了我一个异常

无法连接:MySQL Connector/J 给了我一个奇怪的异常

Pandas pd.read_html() 函数给了我“HTTP 错误 403:禁止”

PHP API - Nginx 给了我无效的数据类型标头

如何显示数据库中的文章?