繁体   English   中英

SQL语法错误/查询

[英]SQL Syntax Error / Query

您的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>";

?>

在这种查询中,如果您尝试“搜索”(使用$ _GET [“ urlsearch”])并放置一个奇怪的符号(在这种情况下像单引号一样),它将停止引起错误。

这可以被利用( SQL注入 )。

使用mysql_real_escape_string() (和/或其他一些函数)防止这种情况。

更改:

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

至:

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

尝试,

$query = "SELECT `URL` FROM `tracker.Data` WHERE `URL` LIKE '%$_GET[urlsearch]'";
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>";
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM