2014-01-06 3 views
0

Я использую следующий метод для запроса из моей базы данных SQL:Получить строку из SQL с PHP

function query() { 
    global $link; 
    $debug = false; 
    //get the sql query 
    $args = func_get_args(); 
    $sql = array_shift($args); 

    //secure the input 
    for ($i=0;$i<count($args);$i++) { 
     $args[$i] = urldecode($args[$i]); 
     $args[$i] = mysqli_real_escape_string($link, $args[$i]); 
    } 

    //build the final query 
    $sql = vsprintf($sql, $args); 

    if ($debug) print $sql; 

    //execute and fetch the results 
    $result = mysqli_query($link, $sql); 
    if (mysqli_errno($link)==0 && $result) { 

     $rows = array(); 

     if ($result!==true) 
     while ($d = mysqli_fetch_assoc($result)) { 
      array_push($rows,$d); 
     } 
     //return json 
     return array('result'=>$rows); 
    } else { 
      //error 
     return array('error'=>'Database error'); 
    } 
} 


$result = $result = query("SELECT * FROM users WHERE email='$email' limit 1"); 

$name = (what goes here?) 

Я пытаюсь получить строковое имя от пользователей, как я могу это сделать?

+0

попробовать это: $ имя = $ результат [ 'результат'] [0] [ 'имя']; –

ответ

0

Если ваш запрос является правильным, то

попробовать это:

function query() { 
     global $link; 
     $debug = false; 
     //get the sql query 
     $args = func_get_args(); 
     $sql = array_shift($args); 

     //secure the input 
     for ($i=0;$i<count($args);$i++) { 
      $args[$i] = urldecode($args[$i]); 
      $args[$i] = mysqli_real_escape_string($link, $args[$i]); 
     } 

     //build the final query 
     $sql = vsprintf($sql, $args); 

     if ($debug) print $sql; 

     //execute and fetch the results 
     $result = mysqli_query($link, $sql); 
     if (mysqli_errno($link)==0 && $result) { 

      $rows = array(); 

      if ($result!==true) 
      while ($d = mysqli_fetch_assoc($result)) { 
       array_push($rows,$d); 
      } 
      //return json 
      return array('result'=>$rows); 
     } else { 
       //error 
      return array('error'=>'Database error'); 
     } 
    } 


    $result = query("SELECT * FROM users WHERE email='$email' limit 1"); 

    $name = $result['result'][0]['name']; 
+0

@ user906357: можете ли вы попробовать это? –

+0

Вот и все! Спасибо большое! – user906357

0

Вы забыли передать значение функции

function query($sql) { 
    global $link; 
    $debug = false; 
    //get the sql query 
    $args = func_get_args(); 
    $sql = array_shift($args); 

    //secure the input 
    for ($i=0;$i<count($args);$i++) { 
     $args[$i] = urldecode($args[$i]); 
     $args[$i] = mysqli_real_escape_string($link, $args[$i]); 
    } 

    //build the final query 
    $sql = vsprintf($sql, $args); 

    if ($debug) print $sql; 

    //execute and fetch the results 
    $result = mysqli_query($link, $sql); 
    if (mysqli_errno($link)==0 && $result) { 

     $rows = array(); 

     if ($result!==true) 
     while ($d = mysqli_fetch_assoc($result)) { 
      array_push($rows,$d); 
     } 
     //return json 
     return array('result'=>$rows); 
    } else { 
      //error 
     return array('error'=>'Database error'); 
    } 
} 


$result = $result = query("SELECT * FROM users WHERE email='$email' limit 1") 
+0

, где вы передали отсутствующий аргумент? –

+0

Я обновил это, чтобы передать аргумент, и все работает одинаково. запросы работали до изменения – user906357

0
$name = ""; 
if(! isset($result["error"]) and isset($result["name"])) // check it returns error or not. then check name field exist or not. 

{ 
    $name = $result["name"]; 
} 

echo $name; 
+0

благодарю вас за ответ, однако это не сработало. – user906357

+0

что вы получаете? –

+0

ничего не выводится – user906357

Смежные вопросы