2015-09-17 2 views
-1

Я получаю следующее сообщение об ошибке:Предупреждение: mysql_fetch_assoc

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/inv/public_html/set.php on line 19

Line 19:

$row = mysql_fetch_assoc($result); 

Полный код:

<?php 

$sitename = "ASDASDCSGO"; 

$link = mysql_connect("localhost", "x", "y"); 

$db_selected = mysql_select_db('x', $link); 

mysql_query("SET NAMES utf8"); 



function fetchinfo($rowname,$tablename,$finder,$findervalue) { 

    if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename"); 

    else $result = mysql_query("SELECT $rowname FROM $tablename WHERE `$finder`='$findervalue'"); 

    $row = mysql_fetch_assoc($result); 

    return $row[$rowname]; 

} 

?> 
+1

Все MySQL функции устарели. Вместо этого используйте PDO. –

+0

Это происходит, когда ваш запрос терпит неудачу, Oh и снова посмотрите функции _deprecated_ mysql. – user5173426

+0

введите строки в цитату '' '' – Shehary

ответ

0

Это предупреждение генерирует потому, что ваш результат $ null. проверить, что ваш результат булев или нет.

<?php 

$sitename = "ASDASDCSGO"; 

$link = mysql_connect("localhost", "x", "y"); 

$db_selected = mysql_select_db('x', $link); 

mysql_query("SET NAMES utf8"); 



function fetchinfo($rowname,$tablename,$finder,$findervalue) { 
    // you can't access php variable as a string in query 
    if($finder == "1") $result = mysql_query("SELECT '.$rowname.' FROM '.$tablename.'"); 

    else $result = mysql_query("SELECT '.$rowname.' FROM '.$tablename.' WHERE '.$finder.'='.$findervalue.'"); 

    if(!is_bool($result)){ // this is for checking your $result varible is boolean or not 
    $row = mysql_fetch_assoc($result); 
    }else{ 
    echo "Error"; 
    } 

    return $row[$rowname]; 

} 

?> 
+0

nope, wrong one –

+0

Повторите попытку. теперь мой ответ обновлен. –

+0

@Pepo_rasta Его взгляд в порядке, я думаю :) –

0
<?php 
function fetchinfo($rowname,$tablename,$finder,$findervalue) { 

    if($finder == "1") $result = mysql_query("SELECT $rowname FROM $tablename"); 

    else $result = mysql_query("SELECT ".$rowname." FROM ".$tablename." WHERE ".$finder."=".$findervalue.""); 

    $row = mysql_fetch_assoc($result); 

    return $row[$rowname]; 

} 

или вы можете использовать ваш запрос, как этот

mysql_query('SELECT {$rowname} FROM {$tablename} WHERE {$finder}={findervalue}'); 
Смежные вопросы