[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: В чем может быть проблема с базой данных?
oarsyonov
В принципе всегда работает все правильно, но вот именно в этом случае находит ошибку. Думал над возможной причиной ошибки, но так ни к чему и не пришел.

Вот код:

$dbcheck = mysql_query("SELECT id FROM users WHERE name='$named' AND surname='$surnamed'",$db); // выбираем айди пользователя с введенными именем и фамилией
$dbrow = mysql_fetch_array($dbcheck); // получаем гипотетический ряд таблицы с указанными параметрами


А вот ошибка:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/vrestora/public_html/profile/pm.php on line 83


Я понимаю смысл ошибки, возможно dbcheck дала false, но почему она могла дать false, если запрос как-бы правильно выполнен?
denisdangerous
Ну так и есть. mysql_query("SELECT id FROM users WHERE name='$named' AND surname='$surnamed'",$db) дает false поэтому и mysql_fetch_array() ругается...
Rand
$dbcheck = mysql_query("SELECT id FROM users WHERE name='$named' AND surname='$surnamed'",$db);

if (!$dbcheck) {
die('Ошибка: ' . mysql_error());
}

if(mysql_num_rows($dbckeck) > 0) {
$dbrow = mysql_fetch_array($dbcheck)
}
oarsyonov
Мне просто не понятно, в чем же причина этого false.
Таблица users есть, поле id она в себя включает. Переменные $named и $surnamed есть, являются строками. Поля name и surname есть в таблице, text типа...
Более чем странно.
oarsyonov
Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='.... О такой вот ошибке сообщила mysql_error()...
oarsyonov
Все ясно. Нужно перекодировать в юникод.
oarsyonov
После того, как я написал функцию для перекодирования строк с кириллицы на юникод, все вообще перестало работать.
До этого работало только то, что было введено латинскими буквами.
denisdangerous
Вот тебе мой класс для работы с БД, может поможет


static public function connect(){
$result=mysql_connect(Core::get_var('DB_HOST'), Core::get_var('DB_USER'), Core::get_var('DB_PASS'))
or die("Error: can't connect to MySQL! Check your settings.");
$result.=mysql_select_db(Core::get_var('DB_NAME'))
or die("Error: there isn't a database with such name! Check your settings.");
mysql_query("SET NAMES 'utf8'");
return $result;
}

static public function query($query,$m="s"){
$destination=null;
$result=mysql_query($query) or die(mysql_error());
if ($m=="s"){
while($row = mysql_fetch_array($result)){
$destination[] = $row;
}
return $destination;
}
if ($m=="u") return $result;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.