Перенес сайт с одного хостинга на другой, на первом хостинге была одна БД, а на новом две. подключение к БД происходит, но при запросе к БД выдается эта ошибка:
[host nufypet.kz] Backend fatal error: PHP Fatal error: Uncaught
PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected
in /var/www/vhosts/alevelcenter.kz/nufypet.kz/func.php:286\nStack
trace:\n#0 /var/www/vhosts/alevelcenter.kz/nufypet.kz/func.php(286): PDO->prepare('SELECT
* FROM u...')\n#1 {main}\n thrown in /var/www/vhosts/alevelcenter.kz
/nufypet.kz/func.php on line 286\n, referer: http://nufypet.kz/register.php
UPDATE
исправил вот так, но ошибка осталась:
$db = PDO->execute("USE $dbname");
$stmt = $db->prepare(" SELECT * FROM users WHERE email = :email LIMIT 1");
$stmt->execute(array('email' => $email));
вот так выглядит подключение:
$dbhost = "localhost";
$database= "";
$dbuser = "";
$dbpass = "";
$db = new PDO("mysql: dbname =$database; host = $dbhost; charset = utf8",$dbuser,$dbpass);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("set names utf8");
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('utf8');
date_default_timezone_set('Asia/Almaty');
Там где у вас происходит подключение к базе данных, установите ее название
$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
Я задавался вопросом по этой проблеме и на английском StackOverflow. Проблема была решена так:
$stmt = $db->prepare("SELECT * FROM `dbname`.`table` WHERE email = :email LIMIT 1");
надо было взять в обратные кавычки названия БД и таблиц. Вот ссылка на мой вопрос и крайне полезная ссылка по теме.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Наподобие такого наверное (правда Вам это не поможет скорее всего, написал за два часа - куча багов, разве что примерно как делать) :
Ошибка: выражение должно иметь тип указателя на объектОднако, как только я ставлю указатель, появляется другая ошибка