簡體   English   中英

用php寫sql查詢

[英]write sql query in php

以下sql查詢可在phpAdmin中完美運行。

SELECT response_text FROM statement_responses WHERE response_code = "s1_r1"

沒有response_code值周圍的語音標記,該功能將不起作用。

我正在嘗試在php中使用response_text的值。

for ($x = 1; $x <= 9; $x++) {   
    $user_response = ${"statement_" . $x . "_response"};
    $sql = "SELECT response_text FROM statement_responses WHERE response_code = \"$user_response\"";
    $result = mysqli_query($sql);
    $value = mysqli_fetch_object($result);
    echo $user_response . "<br>";
    echo $sql . "<br>";
    echo $result . "<br>";
    echo $value . "<br>";
}

回聲使我可以看到每個變量包含的內容。

我得到以下內容:

s1_r3 (the value of $user_response)

SELECT response_text FROM statement_responses WHERE response_code = "s1_r3" (the value of $sql - which is identical to the phpAdmin query that works.)

沒有為$result$value回應的$value

請問我做錯了什么? 為什么我不能將數據庫中的值輸入到我的PHP代碼中?

mysqli_query的第一個參數應該是使用mysqli_connect創建的數據庫連接。 同樣, mysqli_fetch_object的第一個參數應該是mysqli_query返回的結果集標識符。

優良作法是檢查所調用函數的返回值。

首先,感謝您的所有答復。 以下代碼有效-即,它返回“ response_text”列中包含的值,並用“ response_code”標識選定行,以用作$ response_text的值。

for ($x = 1; $x <= 9; $x++) {

$user_response_pre = ${"statement_" . $x . "_response"};

$user_response = "\"'" . $user_response_pre . "'\"";

$sql = "SELECT response_text FROM statement_responses WHERE response_code = $user_response";

$result = mysqli_query($conn, $sql);

$row = mysqli_fetch_array($result);

$response_text = $row[0];

${"statement_" . $x . "_complete"} .= $response_text;

}

你可以這樣寫

for ($x = 1; $x <= 9; $x++) {   
    $user_response = ${"statement_" . $x . "_response"};
    $sql = 'SELECT response_text FROM statement_responses WHERE response_code = "'.$user_response.'"';
    $result = mysqli_query($sql);
    $value = mysqli_fetch_object($result);
    echo $user_response . "<br>";
    echo $sql . "<br>";
    echo $result . "<br>";
    echo $value . "<br>";
}

暫無
暫無

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

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