2013-05-08 81 views
0
session_start(); 
include 'assets/config.php'; 

if(isset($_POST['username'])){ 

    $queryIsUsername = ("SELECT count(user) FROM users WHERE user = '$_POST['username']'"); //Error 
    $actionQueryIsUsername = mysql_query($queryIsUsername); 
    while($rowIsUsername = mysql_fetch_array($actionQueryIsUsername)) { 
     $isUsername[] = $rowIsUsername['COUNT(user)']; 
    } 

    if($isUsername[0]="0"){ 

     header("Location: login.php?error=e1"); 
    } 

    else{ 
//do stuff 
} 

我不确定最新错误,这是我的错误。我删除了if语句,错误消失了。PHP SQL语法错误?

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/XAMPP/xamppfiles/htdocs/craftlist/index.php on line 7 
+0

为什么你围绕在括号中的查询字符串? – 2013-05-08 23:48:31

+0

这是我拾起的一个小习惯。 – OPatel 2013-05-08 23:49:54

回答

3

将其更改为

$queryIsUsername = ("SELECT count(user) FROM users WHERE user = '".$_POST['username']."'"); 

但这不是SQL INJECTION安全!

1

插值数组变量时,不应在引号的周围加上引号。

个人而言,我宁愿串联:

"....".mysql_real_escape_string($_POST['username'])."..."; 

这是最容易阅读的可能语法。

0
$queryIsUsername = ("SELECT count(user) FROM users WHERE user = '$_POST['username']'"); //Error 

应该

$queryIsUsername = ("SELECT count(user) FROM users WHERE user = '".$_POST['username']."'"); //Error 

上的搁置你可能想看看库MySQLi或PDO_MYSQL因为PHP MySQL扩展已被弃用。见http://www.php.net/manual/en/intro.mysql.php