首页 > 解决方案 > 为什么我使用 PHP 查询时会出错

问题描述

我希望有人可以帮助我:-) 我试图从托管在 simple.com 的 mysql 数据库中获取一些数据

我收到此错误,并且无法理解为什么:

警告:PDO::query(): SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 20 行的 /Applications/MAMP/htdocs/medieland/inc/connection.php 的第 1 行的“SELECT * FROM wp_postmeta”附近使用正确的语法

    //Connection to Database
try {
    $db = new PDO ("mysql:host=$db_host;dbname=$db_name;charset=UTF8", "$db_user", "$db_pass");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch (Exception $e) {
    echo "unable to connect to db which is the wordpress database";
    exit;
}

$results= $db->query('SELECT * FROM wp_postmeta');
$post_id = $results->fetchAll();

标签: phpmysqlpdo

解决方案


我发现了错误。正如 CBroe 所写,它是一个“隐形”角色。

我在没有复制/粘贴任何内容的情况下重写了所有内容,并且成功了。

这是代码:

    try {
$db = new PDO("mysql:host=$db_host;dbname=$db_name;charset=UTF8", "$db_user", "$db_pass");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
} catch (Exception $e) {
echo $e;
}

try {
$sql="SELECT post_id FROM wp_postmeta WHERE meta_value LIKE '%start med at%' ORDER BY post_id DESC ";
$results=$db->query($sql);
$post_id = $results->fetchAll();
} catch (Exception $e) {
echo $e;
}
var_dump($post_id);

推荐阅读