2015-10-03 4 views
0

Я запускаю запрос на localhost, и он отлично работает. Если я загружу на сервер (FatCow), это приведет к синтаксической ошибке, если я не уменьшу внутреннее соединение до двух, и не имеет значения, какую таблицу я вынимаю. На сервере, пока есть только две таблицы, они работают без синтаксической ошибки! ЭТО ВОПРОС РАЗЛИЧЕН, ЧТО ЭТО НЕ НУЖНО СДЕЛАТЬ С MYSQLI, JOHN CONDE. ЭТО ДОЛЖНО СДЕЛАТЬ С СЕРВЕРОМ, ОГРАНИЧИВАЯ КОЛИЧЕСТВО ОБЪЕДИНЕНИЙ ИЛИ ВЫБОРОВ. ПОЖАЛУЙСТА, НЕ ЗАКАЗЫВАЙТЕ ВОПРОСЫ, КАК «УЖЕ ОТВЕТСТВЕННО» И ПРЯМО НА МЕСТО, ЧТО НЕ ОТВЕТИТ ВОПРОС.Ошибка Mysql Inner Join на сервере

$sqlStr="SELECT 
     client.clientID, 
     client.fname, 
     client.lname, 
     client.email, 
     client.ctype, 
     client.uname, 
     userprofile.skilllevel, 
     userprofile.dob, 
     userprofile.sex, 
     userprofile.startdate, 
     userprofile.lotno, 
     userprofile.partnercId, 
     useraddress.address, 
     useraddress.city, 
     useraddress.state, 
     useraddress.zip, 
     userphone.phonenumber 

FROM client 

    INNER JOIN userprofile 
    ON client.clientID = userprofile.clientId 

    INNER JOIN useraddress 
    ON client.clientID = useraddress.clientId 

    INNER JOIN userphone 
    ON userprofile.clientId = userphone.clientId 

    WHERE 
     client.ctype='1' 
     AND client.valid='1' 
     AND useraddress.primaryaddr = '1' 
     AND userphone.primaryphone = '1' 

     ORDER BY client.lname ASC"; 
$sql=mysql_query($sqlStr) or die("cidlistpick failed!"); 
if (mysql_num_rows($sql) > 0) { 
    $lastChar=""; 
    $firstRun="";//if set to somethign else, passed the first iteration. 
    $i=0; 
    while ($t=mysql_fetch_array($sql)) {... 

Я могу извлечь любую из таблиц из соединения, и она будет работать на сервере. Или, точный код выше со всеми объединениями будет работать на localhost. Я проверил имена таблиц и полей, и они определенно верны. Весь размер базы данных был бы не более 660 записей в «клиенте» и примерно такой же, как и с каждой другой таблицей.

Вот сообщение об ошибке:

20151002T102522: www.internetmarketingofsandiego.com/htpb/index.php PHP Warning: mysql_num_rows() ожидает параметр 1, чтобы быть ресурсом, логический приведены в/HermeS/waloraweb097/b516 /moo.ilssystemcom/IMSD/htpb/aPages/ins_cidlistpick.php в строке 611 PHP Предупреждение: mysql_fetch_array() ожидает, что параметр 1 будет ресурсом, boolean задан в /hermes/waloraweb097/b516/moo.ilssystemcom/IMSD/htpb/aPages /ins_cidlistpick.php в строке 670 PHP Предупреждение: mysql_num_rows() ожидает, что параметр 1 будет ресурсом, boolean задан в /hermes/waloraweb097/b516/moo.ilssystemcom/IMSD/htpb/aPages/ins_cidlistpick

ЛИНИЯ 670:

while ($t=mysql_fetch_array($sql)) {.... 
+0

Вы можете написать здесь свою ошибку? – sandeepsure

+0

Я добавил сообщение об ошибке выше. Благодаря! –

+0

Вы уверены, что после последней строки этого кода вы получите сообщение об ошибке? потому что я не мог найти эту функцию 'mysql_num_rows()' в вашем коде. Пожалуйста, отредактируйте код, если ничего не пропало. – sandeepsure

ответ

0

использовать MySQLi вместо MySQL :)

$exe = mysqli_query($your_connection,$query); 

затем использовать mysqli_num_rows() он будет отлично работает

+0

Это здорово, если не в mysqli, это в mysql.Кому платят за конвертацию своего программного обеспечения? Я задал вопрос с точки зрения mysql. Кроме того, как уже упоминалось, num_rows не является проблемой, это запрос выполняется в num_rows. Запрос умирает, как было закодировано. Спасибо за предложение, но ... –

+0

но какие мужчины, ваша проблема решена или нет. Ваша версия 5.5.0, так что версия дает предупреждение, которое не использует устаревшие функции mysql. –

+0

Я сказал, что использую 5.3. Это не проблема. –

0

Обновить код из

$sql=mysql_query($sqlStr) or die("cidlistpick failed!"); 

До

if(!$sql=mysql_query($sqlStr)) 
{ 
    echo mysql_error(); 
    die("cidlistpick failed!"); 
} 

Опубликовать ошибку MySQL в своем вопросе, чтобы узнать, что не так в запросе.

Очевидно, что в производственной системе вы не хотите печатать данные об ошибке MySQL клиенту, а затем отправляйте их в файл журнала, прежде чем делать проект вживую.

+0

Привет, Стив, я не могу получить сообщение об ошибке таким образом или в предложении die. В журнале есть сообщение об ошибке, которое было помещено в проводку. Я что-то упускаю? –

+0

Привет, Брайан, извините - небольшая ошибка кода. mysql_error() не нуждается в аргументе. Я обновил код, пожалуйста, повторите проверку. Вы отправили сообщение об ошибке PHP. Вам нужна ошибка MySQL. –

+0

Oooohhh. Да, я получил что-то сейчас: «SELECT рассмотрит больше, чем MAX_JOIN_SIZE строк, проверит ваш WHERE и использует SET SQL_BIG_SELECTS = 1 или SET MAX_JOIN_SIZE = #, если SELECT в порядке» Как я могу изменить эти настройки на сервере ??? –