-1

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

这是我的脚本。

<?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'];
   }
  }
?>

但是,我得到:

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

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

谢谢。

4

4 回答 4

2

您缺少一个"

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

大多数 IDE 将能够找出语法错误。我建议花一些时间来熟悉一个好的。也有免费的。

于 2013-08-12T12:10:39.577 回答
0

您错过了 SQL 查询中的结束双引号,在WHERE name = '%s'.

于 2013-08-12T12:10:46.537 回答
0

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

这个:

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

应该是这样的:

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

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

于 2013-08-12T12:12:33.387 回答
0

12/13 号线。

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

它缺少引号语音标记。

于 2013-08-12T12:11:37.993 回答