我在用php编写搜索查询时遇到了一些小困难(可能是语法问题)。
到目前为止,我有这个:
$query = ("SELECT * FROM $table WHERE $field LIKE "$trimmed);
修剪定义为$trimmed = trim($var);
我试图实现的是,使用该查询来搜索mysql数据库中的某一行。我已经确认它确实连接到dbase,并且确实从表中获取数据。我99%是php和mysql的新手,我刚刚开始做这方面的工作。如有任何帮助,我们将不胜感激。
编辑:哦,我在这里使用查询:$result = mysql_query($query);
我确信问题不在这里,而是在$query
更改
$query = ("SELECT * FROM $table WHERE $field LIKE "$trimmed);
至
$query = "SELECT * FROM $table WHERE $field LIKE '$trimmed'";
对输入中的任何特殊字符(如反斜杠)进行转义总是一个好主意。使用mysql,可以使用mysql_escape_string
:
$trimmed = mysql_escape_string($trimmed);
$query = "SELECT * FROM $table WHERE $field LIKE '$trimmed'";
等效命令存在于mysqli、PDO和所有PHP框架中。
查看PHP手册,例如:
$query= mysql_query("SELECT data FROM mydb;");
$myarray= array();
while ($row= mysql_fetch_array($query)) {
$myarray[] = $row['data'];
}
编辑
这是你的密码?如果是这样,则会出现语法错误:
$query = ("SELECT * FROM $table WHERE $field LIKE "$trimmed);
应该是:
$query = ("SELECT * FROM $table WHERE $field LIKE '$trimmed'");