我有一个托管在Apache服务器(Plesk VPS)上的网站(例如site.com)。安装phpMyAdmin用于管理站点上的MySQL数据库。我使用了"复制表" phpMyAdmin中的函数,用于复制现有表的结构和属性。我成功地将新数据导入新表。
我创建了一个新的子域(xx.site.com),并将其根目录分配给服务器上的// httpdocs / new_site。复制现有(工作)php脚本后查询旧表的数据
$fetch = mysql_query("SELECT * FROM tablename WHERE fieldname LIKE '$var' ");
while ($row = mysql_fetch_row($fetch)) {
echo "$row[0] $row[1] $row[2] $row[3] $row[4] $row[5]";
};
并将tablename更改为新复制和填充的表我得到一个空的结果集。值得注意的是php脚本正常执行,没有错误,并成功传回空结果集,可以用$ var的echo替换,建立查询不是空/ null。
建立$ var的代码是:
$var = $_GET['var']; //takes the pass from URL
if (empty($var))
die;
我该如何解决这个问题?应该寻找什么线索?哪些信息可以确定问题所在?
答案 0 :(得分:1)
我认为你错过了%
将您的查询更改为此
SELECT * FROM tablename WHERE fieldname LIKE '$var%'
如果您将%
放在$var
的右侧,它将从左到右匹配任何内容。
如果您在%
($var
)的左侧放置'%$var'
,则该列将从列fieldname
的右侧到左侧匹配
当您使用LIKE
运算符时, 指示从哪里开始搜索。如果你想要完全匹配。这样做
SELECT * FROM tablename WHERE fieldname='$var'
修改
AS建议由Fred -iii,
SELECT * FROM tablename WHERE fieldname LIKE '". $var ."&'
OR
SELECT * FROM tablename WHERE fieldname='". $var ."'