0

所以我有这个“表格”和一个包含文章的数据库。我想要做的是:我有一个名为“inputaddtobill”的文本框,当焦点被释放时,一个按钮被自动按下。

现在在文本框中,应该放置条形码。那些条形码指的是文章名称。每当我在文本框中输入条形码时,应显示相应的文章,当我放入下一个条形码时,应显示 2 篇文章

这是我的html

<html>
<head>
<title>Verkoop</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="../js/artverklostfoc.js"></script>
<link rel="icon" href="../img/favicon.png">
<link rel="stylesheet" href="../css/style.css"/>
</head>
<body>
<form method="post" action="kassaverkoop.php?a=b" name="frmkassaverkoop">
<input type='text' onBlur='lostFocus()' name='inputaddtobill' class='inputaddtobill'>
<input type='submit' value='toevoegen' name='butaddtobill' id='butaddtobill' />
</form>
</body>
</html>

这是我的 php

<?php
include "connect_to_mysql.php";
if(isset($_GET['a']) && $_GET['a'] == 'b')
{
    $input = array($_POST['inputaddtobill']);
    $queryart = mysql_query("SELECT * FROM tbl_artikel WHERE FLD_Barcode IN ($input)");

    while ($row = mysql_fetch_array($queryart))
    {
        echo $row['FLD_Artikel'];
    }
}
?>
4

1 回答 1

0

您的代码将不起作用。

$input = array($_POST[...']);

在索引 0 处创建一个具有单个值的数组 - 来自 $_POST 的值。

然后,您可以直接在查询中使用 $input。这意味着您在字符串上下文中使用数组,这意味着您实际上会将单词插入Array到查询字符串中并最终得到

SELECT ... WHERE FLD_Barcode IN (Array)

另外,请注意,即使这可行,您也将直接将用户提供的数据插入到查询字符串中,从而使您容易受到SQL 注入攻击

于 2013-01-15T18:30:19.787 回答