以下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
没有回显值。
我做错了什么,拜托?为什么我没有从数据库中获取值到我的PHP代码中?
答案 0 :(得分:3)
mysqli_query
的第一个参数应该是使用mysqli_connect
创建的数据库连接。类似地,mysqli_fetch_object
的第一个参数应该是mysqli_query
返回的结果集标识符。
最好从您调用的函数中检查返回值。
答案 1 :(得分:0)
首先,感谢您的所有回复。以下代码有效 - 即它返回&#39; response_text&#39;中包含的值。所选行的列由&#39; response_code&#39;标识用作$ response_text的值。
myProgram
答案 2 :(得分:-2)
你可以这样写
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>";
}