【发布时间】:2014-07-24 04:15:07
【问题描述】:
PHP 有点新,但我认为我走在正确的轨道上。我正在尝试在 sql 表上搜索序列号。我想要序列号的响应以及它所在的列。如果有帮助,则有 4 列(id、30、32、31)。
编辑:很抱歉造成混淆......当我输入序列号 002062008002220(所有序列号均为 16 位长)时。我得到一个空白页来显示...当前表格在下面
30 32 31 002062008002220 002062008002222 002062008002233
<form action="search.php" method="get">
<input id="serials" type="text" name="serials" />
<input type="submit" />
</form>
<?php
$con=mysqli_connect("localhost", "xxx", "xxx", "nsmserials");
if (mysqli_connect_errno ()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$search = mysql_real_escape_string($_REQUEST['serials']);
$query = "SELECT 30, 32, 31 FROM nsmtable WHERE 30 LIKE '%$search%' OR 32 LIKE '%$search%' OR 31 LIKE '%$search%'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
echo "<li><span class='name'><b>{$row['serials']}</b></span></li>";
}
mysqli_close($con);
?>
【问题讨论】:
-
你的问题是什么?还是有什么问题?
-
警告您的代码容易受到 sql 注入攻击!
-
您的
SELECT无效。你想SELECT <cols> FROM nsmtable -
SELECT nsmtable- SELECT 查询的语法不正确 -
另外你正在调用 mysql_* 方法但是创建了一个 mysqli 连接。