我在PHP程序中编写以下代码,但mysql没有返回任何行。请检查并帮助找出以下代码中的错误。
index.php:
<?php
require 'connect.php';
if (!$_POST['submit']) {
echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\"> \n";
echo "<form method=\"POST\" action=\"index.php\">\n";
echo "<tr><td>username</td><td><input type=\"text\" name=\"username\"</td></tr> \n";
echo "<tr><td colspan=\"2\" align=\"right\"><input type=\"submit\" name=\"submit\"</td></tr> \n";
echo "</form></table> \n";
} else {
$user = filter_input(INPUT_POST, username);
$result = $db->query("SELECT id,username FROM members WHERE username=".$user);
print_r($result);
}
connect.php:
<?php
$db = new mysqli('localhost', 'Siload', 'Siload2012', 'users');
if ($db->connect_errno) {
echo $db->connect_error;
}
?>
答案 0 :(得分:0)
使用print_r(mysqli_fetch_assoc($result));
答案 1 :(得分:0)
似乎你没有正确宣布你的变量。您也没有正确构建查询。请尝试这种方式。
$user = filter_input(INPUT_POST, $_POST['username']);
$result = $db->query("SELECT id,username FROM members WHERE username='".$user."'");
答案 2 :(得分:0)
要打印从结果中获取行所需的任何结果,因为$ db-&gt; query返回一个mysqli_result对象,它是一个迭代器,但它还没有包含任何实际数据。
例如:
$row = $result->fetch_assoc();
print_r($row);
如果等于false,还应该对$ result变量添加一个检查。在这种情况下,您在查询本身中会遇到一些错误。也许您的数据库暂时不可用