0

我试图让我的搜索在我的数据库中查找 $searchtext 其中 $selecteditem 代表它正在搜索的列。出于某种原因,当我尝试搜索我肯定存在的东西时,它返回 0 个结果。

是的,我知道 sql 注入,一旦我弄清楚如何轻松做到这一点,我就会将其更改为 mysqli。

我的表格——

<form name="search" id="search" method="POST" action="">
    <input type="text" name="searchterm" id="searchterm">
    <select name="selectitem">
        <option value="propertydescription">Property/Description</option>
        <option value="transactiontype">Transaction type</option>
        <option value="applicabledocument">Applicable document</option>
        <option value="recieved">recieved</option>
        <option value="paid">paid</option>
    </select>

</div></td>
<td>&nbsp;</td>
<td><input type="submit" name="search" value="search"></td>

我的 php -

if (isset($_POST['search']))
{
    $columbname = $_POST['selectitem'];
    $searchterm  = $_POST['searchterm'];
    $query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND $columbname = '$searchterm'";
    $result = mysql_query ($query) or die(mysql_error());
}
else
4

2 回答 2

0

如果 $columbname 是 varchar 则使用 LIKE 操作或从 columbname 字段中删除 $ 符号

于 2013-06-04T12:47:45.087 回答
0

您可以通过打印查询并检查它是否传递了所需的参数来测试它。如果是,则复制查询并运行 mysql 数据库并检查结果。

  if (isset($_POST['search']))
    {
        $columbname = $_POST['selectitem'];
        $searchterm  = $_POST['searchterm'];

    echo "SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND $columbname = '$searchterm'"; exit;

        $query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND $columbname = '$searchterm'";
        $result = mysql_query ($query) or die(mysql_error());
    }
    else
于 2013-06-04T10:51:47.610 回答