您的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;
答案 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];