2016-02-27 141 views
1

刚刚在phpmyadmin上测试过SQL命令,它是成功的。执行页面时SQL命令失败

但是在php代码的页面中,仍然出现错误。

错误: ERREUR德syntaxePrès区德 'SELECT * FROM​​=' 大卫 '' 点菜LIGNE 1

我connSQL PHP代码:

<?php 
     $hostname_connSQL = "localhost"; 
     $database_connSQL = "member"; 
     $username_connSQL = "root"; 
     $password_connSQL = "pooleasee"; 
     $connSQL = mysqli_connect($hostname_connSQL, $username_connSQL,  $password_connSQL) or die('Error:' .mysqli_error($connSQL)); 
     mysqli_query($connSQL,"SET NAMES utf8") 
?> 

我的登录PHP代码:

<?php 
     header("Content-Type: text/html; charset=utf-8"); 
     require_once("connSQL.php"); 
     session_start(); 
     if(isset($_SESSION["m_username"]) && ($_SESSION["m_username"]!="")) 
    { 
     header("Location: membercenter.php"); 
    } 
     if(isset($_POST["m_username"]) && isset($_POST["m_password"])) 
    { 
     $sql = "USE `member`; SELECT * FROM `memberdata`='".$_POST["m_username"]."'"; 
$RecLogin = mysqli_query($connSQL,$sql)or die('Error:' .mysqli_error($connSQL)); 
    } 
    $row_RecLogin = mysqli_fetch_assoc($RecLogin); 
    $m_username = $row_RecLogin["m_username"]; 
    $m_password = $row_RecLogin["m_password"]; 
if($_POST["m_password"]==$m_password) 
    { 
    $_SESSION["m_username"] = $m_username; 
    if(isset($_POST["rememberme"]) && ($_POST["rememberme"]=="true")) 
    { 
    setcookie("m_username", $_POST["m_username"], time()+365*24*60*60); 
    setcookie("m_password", $_POST["m_password"], time()+365*24*60*60); 
    } else 
    { 
    if(isset($_COOKIE["m_username"])) 
    { 
     setcookie("m_username", $_POST["m_username"], time()-100); 
     setcookie("m_password", $_POST["m_password"], time()-100); 
    } 
    } 
    { 
     header("Location: membercenter.php"); 
    } 
    } 
     else 
    { 
     header("Location: index.php?loginFail=true"); 
    } 
?> 

我的数据库:

enter image description here

其实我是一个tiro,有很多地方可以学习,我找不到错误,我希望你能帮助我。

回答

1

您的查询语法不正确,缺少WHERE columnName。也总是逃避与mysqli_real_escape_string

Incorrect Syntax: 
$sql = "SELECT * FROM `memberdata`='".$_POST["m_username"]."'"; 

Correct Syntax: 
$sql = "SELECT * FROM `memberdata` WHERE m_username='".mysqli_real_escape_string($connSQL, $_POST["m_username"])."'"; 
+0

谢谢您的回答的价值,我会尝试 –

+0

在我的天啊,我居然错过WHERE COLUMNNAME ... –

0

更改SQL语法

$sql = "SELECT * FROM memberdata WHERE `m_username`='" . $_POST["m_username"] . "'"; 
+0

谢谢为你的答案,我会尝试 –

+0

当然,欢迎你! – AamirR