PDO дает Mysql Ошибка 1146
$deleteID = $_POST['oz'];
if(!$deleteID){
echo '2';
die;
} else {
//It should be working.
}
$checkVar = $pdo->prepare("SELECT * FROM `user_posts` WHERE `id`=:delete");
$checkVar->bindValue(':delete',$deleteID,PDO::PARAM_STR);
if($checkVar->execute() == false){
echo '2';
die;
}
Я действительно разозлился. $deleteID предоставлен, ничто не связывается. Почему нет, пожалуйста, помогите кому-нибудь.
2 ответа
- заставить PDO выдавать исключение при ошибке,
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
после подключения. - Убедитесь, что вы видите ошибки, либо в журналах, либо на экране.
- Запустите тот код, который вы разместили здесь, а не какой-то другой код. Как и в другом коде, могут быть и другие ошибки, не связанные с вашей проблемой связывания.
Для Table doesn't exist
Проблема, которую вы должны проверить на наличие ошибок, таких как опечатки, регистр букв, неправильный сервер, неправильный файл PHP, отредактированный и т. д. Скажем, вы запускаете PHPMyAdmin против localhost, в то время как на самом деле скрипт работает с удаленным хостом или чем-то в этом роде.
Если указано, что таблица не существует, таблица не существует.
Вы либо подключаетесь к неверному серверу, либо выбираете неверную базу данных, либо у вас есть проблема с регистром.
http://dev.mysql.com/doc/refman/5.5/en/identifier-case-sensitivity.html
[..] Следовательно, чувствительность к регистру базовой операционной системы играет роль в чувствительности к регистру имен баз данных, таблиц и триггеров. Это означает, что такие имена не чувствительны к регистру в Windows, но чувствительны к регистру в большинстве разновидностей Unix.
Убедитесь, что вы подключаетесь к той же базе данных и к серверу, который вы сейчас просматриваете
print_r( $pdo );
Это не проблема авторизации.
Еще один совет. Если вы злитесь, отдыхаете, пьете чай, успокаиваетесь, читаете отличный ответ "Ваш здравый смысл" и снова смотрите код:)