SQL语法错误/查询

时间:2011-10-20 05:04:45

标签: php mysql html sql

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在第1行'%$ _ GET [“urlsearch”]'附近使用正确的语法

我不确定我做错了什么。有什么建议?

尝试能够针对我的数据库(数据的URL列)搜索URL,看看它是否存在。

<form method="GET" onSubmit=""><input type="text" name"urlsearch" id="SearchURL" /><input type="submit" value="Search" /></form>
<?php
$hostname = *
$username = *
$password = *
mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db("tracker") or die("Unable to select database");
$query = 'SELECT URL FROM tracker.Data WHERE URL LIKE %$_GET["urlsearch"]';
$results = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($results) or die(mysql_error());
echo "<b>[$row] </b>";

&GT;

5 个答案:

答案 0 :(得分:1)

在这样的查询中,如果你试图“搜索”(使用$ _GET [“urlsearch”])并添加一个奇怪的符号,就像这种情况下的单引号一样,它将停止导致错误。

这可以被利用(SQL injection)。

使用mysql_real_escape_string()(和/或其他一些功能)来防止这种情况发生。

答案 1 :(得分:0)

变化:

$query = 'SELECT URL FROM tracker.Data WHERE URL LIKE %$_GET["urlsearch"]';

为:

$query = 'SELECT URL FROM tracker.Data WHERE URL LIKE "%'.$_GET["urlsearch"].'"';

答案 2 :(得分:0)

尝试,

$query = "SELECT `URL` FROM `tracker.Data` WHERE `URL` LIKE '%$_GET[urlsearch]'";

答案 3 :(得分:0)

if (isset($_GET["urlsearch"])) {
  $search = mysql_real_escape_string($_GET["urlsearch"]);
  $query = "SELECT URL FROM tracker.Data WHERE URL LIKE '%$search'";
  $results = mysql_query($query) or die(mysql_error());
  $row = mysql_fetch_row($results);
  echo "<b>[$row] </b>";
}

答案 4 :(得分:0)

如果上述不起作用,请尝试以下操作:

$query = "SELECT `URL` FROM `tracker.Data` WHERE `URL` LIKE".%$_GET[urlsearch];