Мой запрос PDO приложения openshift не работал

Я пытаюсь подключиться к базе данных phpmyadmin, используя мой скрипт php в openshift

но результат — пустая страница.

тогда я нахожу вопрос, запрос не работал

но я не знаю почему

Есть мой оригинальный код

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

Решение

Добавьте это в ваш скрипт, чтобы увидеть ваши ошибки

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();
}
0

Другие решения

Вы изменили свой код на неправильное утверждение, чтобы увидеть сообщение об ошибке?
У вас отключены ошибки PHP, когда вы выполняете операторы вроде:

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

Вы получите сообщение об ошибке:

Сытанская ошибкаSQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064
есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует
ваша версия сервера MySQL для правильного синтаксиса, чтобы использовать рядом
‘jngfcjfgcnmgcm ,, hmnxf’ в строке 1

Что именно вы хотите? Исключение не отображается?

0

По вопросам рекламы [email protected]