Bec*_*cky 1 php mysql select mysqli
我在试图弄清楚为什么$query2失败时遇到了问题.我一遍又一遍地看着这段代码,但无法弄清楚.
这是失败的代码行..
$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE category-id='".$cid."' ORDER BY topic_reply_date DESC")
or die ("Query2 failed: %s\n".($query2->error));
Run Code Online (Sandbox Code Playgroud)
有没有人看到我失踪的东西会导致失败?
$user = new User();
if(!$user->isLoggedIn()) {
Redirect::to('index.php');
}
$logged = $user->isLoggedIn();
$con = mysqli_connect("localhost", "root", "", "db");
$cid = $_GET['cid'];
$userid = ( isset( $_SESSION['user'] ) ? $_SESSION['user'] : "" );
if(isset( $_SESSION['user'])) {
$logged = " | <a href='forum_create_topic.php?cid=".$cid."'>Create a new topic</a>";
}
$query = mysqli_query($con,"SELECT * FROM forum_categories WHERE id='".$cid."' LIMIT 1");
$numrows = mysqli_num_rows($query);
if($numrows == 1){
$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE category-id='".$cid."' ORDER BY topic_reply_date DESC")
or die ("Query2 failed: %s\n".($query2->error));
$numrows2 = mysqli_num_rows($query2);
Run Code Online (Sandbox Code Playgroud)
category-id 需要逃脱.
使用反引号`来转义列名,如下所示:`category-id`.即:
WHERE `category-id` ='".$cid."'
Run Code Online (Sandbox Code Playgroud)
MySQL正在将其视为" categoryMINUS id",认为你想要做数学.
你的SQL应该是这样的:
$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE `category-id`='".$cid."' ORDER BY topic_reply_date DESC")
or die ("Query2 failed: %s\n".($query2->error));
Run Code Online (Sandbox Code Playgroud)