2013-06-21 3 views
0

Я использую MySQL для получения данных из таблицы, но он показывает исключение. Вот код, который я использую. Я называю это с помощью URL для проверки:Мой SQL-запрос с использованием исключения при получении данных

$userName=mysql_real_escape_string($_GET['userName']); 
    $query = mysql_query("SELECT * FROM UserCredentials where UserName='$userName' "); 

http://celeritas-solutions.com/pah_brd_v1/productivo/getUserData.php?userName=jamshaid.ali

Вот исключение

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/content/i/h/u/ihus235/html/cs/pah_brd_v1/productivo/getUserData.php on line 74 [] 

Вот полный код

$userName=mysql_real_escape_string($_GET['userName']); 

    $query = mysql_query("SELECT * FROM UserCredentials Where UserName='$userName' "); 


    $rows = array(); 
    while($row = mysql_fetch_assoc($query)) { 
    $rows[] = $row; 
    } 
    echo json_encode($rows); 
    ?>  
+0

Это не исключение, его ленивое предупреждение. – DevZer0

+0

не могли бы вы объяснить, как разрешить этот –

+1

ваш запрос ломается, хотя вы должны добавить 'mysql_error()' для получения ошибки. – DevZer0

ответ

0
$query = sprintf("SELECT * FROM UserCredentials where UserName='%s'",mysql_real_escape_string($_GET['userName'])); 
$result = mysql_query($query); 
if(result){ 
    //do you code 
} 
+0

Не могли бы вы объяснить, почему это работает? – Mark

+0

, конечно, запрос «Jaw Ali» синтаксически недействителен. Таким образом, mysql_query() терпит неудачу и возвращает FALSE. подробнее здесь http://php.net/manual/en/function.mysql-query.php –

0

Некоторые предложения -

Использование isset(), как -

if(isset($_GET['userName'])) { 
// Do the processing, most appropriate check whether form is submitted or not 
} 

Теперь ваш код выглядит, как-

// Sanatize данные, и убедитесь в безопасности кода от SQL инъекций (предпочитают PDO или mysqli_)

if(isset($_GET['userName'])) { 

    $userName=mysql_real_escape_string($_GET['userName']); 
    $sql = "SELECT * FROM UserCredentials Where UserName='".$userName."'"; 
    $query = mysql_query($sql, $conn) or die(mysql_error()); 

    $rows = array(); 
    while($row = mysql_fetch_assoc($query)) { 
    $rows[] = $row; 
    } 
    echo json_encode($rows); 

    } 
?>  

эхо $sql; и запустить его в phpmyadmin проверить ваш запрос правильно или не образовала, используйте var_dump() и читать об ошибках/предупреждения/уведомления для отслеживания ошибок.