我的SQL没有返回预期的值

时间:2014-01-27 02:11:40

标签: php sql

我是phpMySQL和php的新手。我试图从数据库中获取一个值并将其放在文本框中。 目前,我的表中只有1个值来测试代码:

这是我的代码:

<?php
$mysql_hostname = "localhost";
$mysql_user = "root";
$mysql_password = "";
$mysql_database = "dbtest";
$tbl_name="tbltest";

$con = mysql_connect("$mysql_hostname","$mysql_user","$mysql_password");

if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("$mysql_database", $con);
$all = mysql_query("SELECT Balance FROM tbltest");
?>

然后在我的HTML方面,我有这个:

<input type="text" name="Balance" value="<?php echo $all; ?>" />

但是当我尝试运行代码时,文本框中显示的值为:

Resource Id #4

我错过了什么? 谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

Mysql_query()返回结果资源。

当您回显返回时,php正在将其转换为字符串。您将需要使用mysql_fetch_array()函数:

$all = mysql_query( "SELECT Balance FROM tbltest" );
foreach(mysql_fetch_array($all) as $row)
{
    $balance = $row['Balance'];
}

echo '<input type="text" value="' . $balance . '">';

此外,这些功能已折旧。它们不再受支持。您应该查看PDO或mysqli。

答案 1 :(得分:0)

mysql_query不会返回结果本身,而是返回保存结果的资源。

您可以使用mysql_fetch_assoc或其他相关内容从该资源中获取一行。

代码应该是这样的:     $ con = mysql_connect($ mysql_hostname,$ mysql_user,$ mysql_password);

if (!$con) {
    die('Could not connect: ' . mysql_error());
}

mysql_select_db($mysql_database, $con);
$res = mysql_query("SELECT Balance FROM tbltest");

$all = mysql_fetch_assoc($res); //actually $all is not all the result, it's first row.
                                // $all might be like array('Balance' => '100');

和HTML部分,因为无法直接回显数组(而是显示'Array'), 你必须指定$ all的索引:

<input type="text" name="Balance" value="<?php echo $all['Balance']; ?>" />