这是我的原始查询
Select * FROM story st, sentences s, speaker sp
WHERE (st.lesson_id = '1' AND
st.speaker_id = sp.speaker_id AND
st.sentence_id = s.sentence_id)
当我尝试添加订单时,它会崩溃。
Select * FROM story st, sentences s, speaker sp
WHERE (st.lesson_id = '1' AND
st.speaker_id = sp.speaker_id AND
st.sentence_id = s.sentence_id) ORDER BY st.story_in_lesson_id ASC
无法弄清楚它为什么会破碎。
编辑: 这是我得到的错误致命错误:调用成员函数fetch_object()
编辑: 我的PHP代码
$result = $mysqli->query("Select * FROM story st, sentences s, speaker sp
WHERE st.lesson_id = '1' AND
st.speaker_id = sp.speaker_id AND
st.sentence_id = s.sentence_id
ORDER BY st.story_in_lesson_id ASC");
while ($value = $result->fetch_object()) {
//never goes in here fails at the fetch_object()
}
编辑:
它是否可能无效,因为我试图查询多个表?只有一个表具有story_in_lesson_id,即故事表。当我在该表上运行查询时,它可以找到。
编辑:
更多信息,将数据库复制到我的工作Mac并且查询正常工作!但为什么它不能在我的电脑上工作?顺便说一下,我现在通过在Sequel Pro中运行它来严格测试查询。
答案 0 :(得分:3)
请删除你的亲爱的地方.....可能它正在运作,请给我回复你得到的结果。
SELECT *
FROM story st
INNER JOIN sentences s
ON st.sentence_id = s.sentence_id
INNER JOIN speaker sp
ON st.speaker_id = sp.speaker_id
ORDER BY st.story_in_lesson_id ASC
答案 1 :(得分:1)
您必须检查st.story_in_lesson_id
中是否存在story table
并且要阻止Fatal error: Call to a member function fetch_object()
你应该尝试,
$query = "Select * FROM story st, sentences s, speaker sp
WHERE st.lesson_id = '1' AND
st.speaker_id = sp.speaker_id AND
st.sentence_id = s.sentence_id
ORDER BY st.story_in_lesson_id ASC";
// check story_in_lesson_id exists in story table
if ($result = $mysqli->query($query)) {
while ($value = $result->fetch_object()) {
// while code
} // while ends
} // if result ends
答案 2 :(得分:0)
试试这个:
SELECT *
FROM story st
INNER JOIN sentences s ON st.sentence_id = s.sentence_id
INNER JOIN speaker sp ON st.speaker_id = sp.speaker_id
WHERE st.lesson_id = '1'
ORDER BY st.story_in_lesson_id ASC
答案 3 :(得分:0)
感谢您的帮助!我已经解决了这个问题!
最后它最终成为文件写入权限问题。我通过在Sequel Pro中运行我的查询来解决这个问题,该问题引发了一个关于/ var / folders / 41 /某些大数字/ T /的文件的错误。我去了dir并且允许写入访问尝试了Sequel Pro中的查询并且它有效。然后我去我的PHP并尝试它,它的工作原理。
如果有人能回答为什么会这样?是否所有查询都写入日志文件或类似的内容?如果有人可以在里面分享更多。