MYSQL制定了一个搜索查询


MYSQL formulating a search query

我在用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'");