从MySQL获取信息

时间:2014-01-08 03:32:42

标签: php mysql mysqli

我无法从我的MySQL数据库获取信息。

这是我的代码:

/********************
* Database Info
********************/

$host = "localhost";
$user = "admin";
$pass = "admin@";
$database = "db_admin";

/********************
* Database connection
********************/

$con = mysqli_connect( $host, $user, $pass, $database );
if (mysqli_connect_errno ()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error ();
}

$result = array();
if (isset($_POST['ID'])) {
    $id = $_POST['ID'];
    $query = "SELECT * FROM Servers WHERE PID='" .$id. "'";
    $result = mysqli_query($con, $query);
}

print("<pre>".print_r($result,true)."</pre>");

我的第一个问题,我当前是否使用了“isset”功能? 因为看起来它实际上并没有通过if语句。

我使用的网址是:#..com/view.php?ID=1

我的第二个问题,我是否正确使用了$ query? 因为我回显$ id并且回显了“MySQL Object()”

最后print打印出"Array()"

我刚开始使用PHP,感谢您的帮助:)

4 个答案:

答案 0 :(得分:0)

@你的第一个问题:如果你有一个名为=“ID”的输入字段,那就好了。 还请发布您的HTML:)

$var = 'Hello world';

if(isset($var)){ //If the var $var has been set (in this case it is)
    echo $var;
} else {
    //If $var is not set, then we get in the else
    echo 'The var $var is not set';
}

答案 1 :(得分:0)

一些事情:

如果您在查询字符串中传递变量,请使用$ _GET而不是$ _POST来检索值。

$ result将返回指向记录集的指针,而不是行本身。您将不得不使用mysqli_fetch_array()来获取行。

添加: 如果您确定只返回1条记录,则可以使用:

$row = mysqli_fetch_assoc($query);
echo $row['field_name'];

超过1条记录?

while($row = mysqli_fetch_assoc($query)){
    echo $row['field_name'];
}

答案 2 :(得分:0)

最好的事情是使用调试器调试代码,您可以使用XDebug,或者至少使用var_dump();来查看会发生什么

var_dump($_REQUEST, $result);

答案 3 :(得分:0)

回答你的第一个问题:当你没有说出你想要做的事情时,很难说你是否正确使用过它。我假设你只想在收到POST变量'ID'的情况下运行if语句中的代码。如果是的话,是的,你已经正确完成了。

回答你的第二个问题:我假设你正在尝试使用有效的MySQL查询构建一个字符串。您已正确完成此操作,假设$_POST['ID']是一个字符串(或者可以转换为字符串,请参阅http://www.php.net/manual/en/language.types.string.php#language.types.string.casting)。

如果您回显$id并且它正在返回一个对象,那么,您将遇到问题。您不能将字符串和对象组合在一起。例如,您需要使用foreach迭代对象,并从中提取id。在解决该部分之前,其余代码将无效。

现在要调查的是$ _POST ['ID']返回一个对象的原因。您至少需要提供表单代码。