-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 に答える