[英]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.