-1

URL id パラメータを使用してデータベースからデータを取得する作業を行っています。私はsyntax error同じに直面しています。誰でもこのコードの問題点を教えてください。

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
$per = $_GET['id'];

$query = mysql_query("select * from dynamic_data where id=".$_GET['id']");


while($row = mysql_fetch_array($query))
{
    echo "<label>" . $row['name'] . "</label>";
    echo "<label>" . $row['desc'] . "</label>";
    echo "<label>" . $row['cell'] . "</label>";
}
?>
4

3 に答える 3

1

クエリをこれに置き換えます。クエリに構文エラーがあります。

$query = mysql_query("select * from dynamic_data where id=".(int)$_GET['id']);
于 2012-12-06T07:04:52.047 に答える
0

これは機能しています

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$per = $_GET['id'];
$query = mysql_query("select * from dynamic_data where id=$per");


while($row = mysql_fetch_array($query))
  {
  echo "<label>" . $row['name'] . "</label>";
  echo "<label>" . $row['desc'] . "</label>";
  echo "<label>" . $row['cell'] . "</label>";
  }

?>
于 2012-12-06T07:02:30.670 に答える
0

まず、使用をやめるmysql_; PDOまたはを使用mysqliして、準備されたステートメントについて学びます。

自分の投稿から、構文エラーがどこから発生したかがわかります。一致しない二重引用符があります。

次の構造は、より安全なクエリを作成するのに役立ちます。

$sql = sprintf("select * from dynamic_data where id='%s'", mysql_real_escape_string($_GET['id']));

$result = mysql_query($sql);

ファンキーな文字が適切にエスケープされるようにします。あなたの場合、id は数値なので、これも機能します。

$sql = sprintf("select * from dynamic_data where id=%d", (int)$_GET['id']);

$result = mysql_query($sql);
于 2012-12-06T07:02:50.467 に答える