【问题标题】:PDO - Parse error when trying to display database [duplicate]PDO - 尝试显示数据库时解析错误[重复]
【发布时间】:2016-11-20 22:06:37
【问题描述】:

我正在使用 XAMPP 和 phpMyAdmin 创建本地数据库。这是我尝试显示一些表格的 PDO 代码

<?php
    $pdo = new PDO('mysql:host=localhost;dbname=puppies', 'admin','puppies');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    try {        
        $result = $pdo->query('SELECT `puppy_name`, `breed_name`, `description`, `price` FROM `animals`, `breeds` WHERE `animals` . `breed_id` = `breeds` . `id`');
    } 
    catch (PDOException $e) {
        echo $e->getMessage();
    }
    foreach ($result as $puppy) {
        $puppy[`puppy_name`]
        $puppy[`breed_name`]
    }
?>

我不断收到此错误:

解析错误:语法错误,第 12 行 /Applications/XAMPP/xamppfiles/htdocs/cs4ww3/invalid.php 中的意外“$puppy”(T_VARIABLE)

我很确定我连接正确 - 如果我删除 foreach 循环,我会看到一个没有错误的空白屏幕。

【问题讨论】:

  • $puppy[`breed_name`] 错误使用引号(应该是单引号 ',而不是反引号 `)并且在末尾缺少 ;
  • echo,如果你想打印的话。
  • 你的foreach里面应该发生什么?
  • @Chris 我正在尝试为每条狗(行)打印狗的名称及其品种。前两个用户是对的,我需要添加回声和分号并更改反引号。目前这一切都在一个长句子中出现,每一行都是背靠背的,但我很高兴能把它打印出来!
  • 你只需要把它隔开 ;-) echo $puppy['puppy_name']." ".$puppy['breed_name']."&lt;br /&gt;"; 可能会让你开始你想要的! @尼古拉斯哈桑

标签: php mysql pdo foreach


【解决方案1】:

要获得有效的代码,您首先必须在循环中的每一行中添加分号。每个语句都需要(应该)以分号结尾。

但您似乎也想显示它们。为此,您需要回应它们: 在行前添加 echo 并用点连接它们:

echo $puppy[...]." ".$puppy[...]."\r\n";

如果您在浏览器中测试,请将\r\n 替换为&lt;br&gt;\r\n 是换行符

从 cmets 添加: 还要记住使用字符串来访问数组值。只有 ' 和 " 用于定义字符串常量。你已经使用了 `。正确的方法:

$puppy['constant'] 

【讨论】:

  • 这不是他们代码中唯一的错误。看看上面的cmets。
  • True +1 错过了这一点。谢谢
猜你喜欢
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 1970-01-01
相关资源
最近更新 更多