我的openshift应用程序PDO查询不起作用

时间:2014-10-24 11:39:19

标签: php mysql pdo openshift

我尝试使用openshift中的php脚本连接phpmyadmin数据库

但结果是一个空页。

然后,我发现问题是查询无法正常工作

但我不知道为什么

有原始代码

try{
        $dsn = 'mysql:dbname=exampleDataBase;host=127.**.***.***;port=*****';
        $dbh = new PDO($dsn, "account", "password");
        $sth = $dbh->prepare('SELECT * FROM test1');
        $fin = $sth->execute();
        while($row = $sth->fetch(PDO::FETCH_ASSOC)){
            print_r($row);
        }
    } catch (PDOException $e){
        echo "Sytan error" . $e -> getMessage();
    }
    $dbh = null;

,结果是一个空页面,所以我修改了我的代码

有我的修改代码

try{
        $dsn = 'mysql:dbname=exampleDataBase;host=127.**.***.***;port=*****';
        $dbh = new PDO($dsn, "account", "password");
        $sth = $dbh->prepare('jngfcjfgcnmgcm,,hmnxf');
        $fin = $sth->execute();
        while($row = $sth->fetch(PDO::FETCH_ASSOC)){
            print_r($row);
        }
    } catch (PDOException $e){
        echo "Sytan error" . $e -> getMessage();
    }
    $dbh = null;

我输入了错误的查询sytanx(jngfcjfgcnmgcm,hmnxf),但没有返回错误。

2 个答案:

答案 0 :(得分:0)

您将代码修改为错误的语句以查看错误消息? 在执行如下语句时,您关闭了PHP错误。

$sth = $dbh->prepare('jngfcjfgcnmgcm,,hmnxf');

您会收到如下错误:

  

Sytan错误 SQLSTATE [42000]:语法错误或访问冲突:1064您   您的SQL语法有错误;检查对应的手册   您的MySQL服务器版本,以便在附近使用正确的语法   'jngfcjfgcnmgcm ,, hmnxf'在第1行

你到底想要什么?例外没有显示?

答案 1 :(得分:0)

将此添加到您的脚本中,查看您的错误

error_reporting(E_ALL | E_STRICT);
ini_set('display_errors',1);
ini_set('html_errors', 1);

并将您的查询代码更改为此,请参阅说明

  try{
    //port=***** is only need where its different from the default
    $dsn = 'mysql:host=localhost;dbname=exampleDataBase';
    $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
    $dbh = new PDO($dsn, "account", "password", $options);
    $sth = $dbh->prepare('SELECT * FROM test1');
    // execute $sth
    $sth->execute();
    //Change fetch to fetchAll
    while($row = $sth->fetchAll(PDO::FETCH_ASSOC)){
        print_r($row);
    }
} catch (PDOException $e){
    echo "Sytan error" . $e->getMessage();
}