我的PHP脚本出了什么问题? T_String问题

时间:2013-08-12 12:09:32

标签: php

我只是想通过特定行中的表格获取一些数据。

这是我的剧本。

<?php
$con=mysqli_connect("localhost","root","","astralms");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$type = htmlspecialchars(mysql_real_escape_string($_GET['type']));
$username = htmlspecialchars(mysql_real_escape_string($_GET['username']));

$result = mysqli_query($con,"SELECT * FROM accounts
 WHERE name = '%s', $username);

while($row = mysqli_fetch_array($result))
  {
    if($type == "nxcash") {
    echo $row['ACash'];
    } else if($type == "votepoints") {
    echo $row['vpoints'];
    } else if ($type == "gmlevel") {
    echo $row['gm'];
   }
  }
?>

然而, 我明白了:

  

(!)解析错误:语法错误,意外'nxcash'(T_STRING)   第17行的C:\ wamp \ www \ accountdata.php。

使用它时127.0.0.1/accountdata.php?username=tester&type=votepoints

感谢。

4 个答案:

答案 0 :(得分:2)

您错过了"

 WHERE name = '%s', $username);
//                ^-- there

大多数IDE都能够选择语法错误。我建议花点时间熟悉一个好的。也有免费的。

答案 1 :(得分:0)

WHERE name = '%s'之后,您错过了SQL查询的结束双引号。

答案 2 :(得分:0)

第12/13行。

$result = mysqli_query($con,"SELECT * FROM accounts WHERE name = '%s', $username);

缺少引号语音标记。

答案 3 :(得分:0)

在SO上突出显示的语法突出显示了您的错误:

此:

$result = mysqli_query($con,"SELECT * FROM accounts WHERE name = '%s', $username);

应该是这样的:

$result = mysqli_query($con,"SELECT * FROM accounts WHERE name = '%s'", $username);

请注意关闭引号------------------------------------------- -------------------------这里----- ^