我尝试使用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),但没有返回错误。
答案 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();
}