簡體   English   中英

使用PHP從SQL獲取行

[英]Get row from SQL with PHP

我正在使用以下方法從我的SQL數據庫查詢:

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?)

我正在嘗試從用戶那里獲取字符串名稱,該怎么辦?

您忘記了將值傳遞給函數

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")
$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;

如果您的查詢是正確的,那么

嘗試這個:

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'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM