0

我一直在尝试这样做一两天,只是不明白为什么它不起作用,因为我有其他人以同样的方式设置。

我只想简单地从数据库中返回一些数据。

这链接到只包含它的 php 文件 (index.php)。

<?php
/*connect to local database */
$host="localhost"; // Host name 
$db_username="Josh"; // Mysql username 
$db_password="password"; // Mysql password 
$db_name="messenger"; // Database name 
$tbl_name="messages"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$db_username", "$db_password")or die("cannot connect to database"); 
mysql_select_db("$db_name")or die("cannot select DB");
$con=mysql_connect("$host","$db_username","$db_password","$db_name");

echo "test";
//retrieve messages
$query = mysql_query($con, "SELECT * FROM messages WHERE key='Josh'") or       die(mysql_error());
echo "test2";
$row = mysql_fetch_assoc($query);
$msg = $row['msg_array'];

echo "test3";
echo mysql_num_rows($query);
echo $msg;

?>

只返回“test//test2//test3”,仅此而已。

这是我的数据库 这是 mdatabase

几个小时以来,我一直试图简单地让一些东西归还,并且有点恼火。我一直在更改它时遇到了很多错误,但是这一次,什么都没有返回。

这应该可以工作,因为我已经多次返回数据并且知道如何从头开始。我所有的其他网站都正常工作,我也没有更新 phpMyAdmin。

这可能是一个小错误,但它真的困扰着我任何帮助将不胜感激,谢谢。

编辑

我放置

error_reporting(E_ALL);
ini_set('display_errors',1);

在我的代码顶部,它返回:

test//test2// 警告:mysql_fetch_assoc() 期望参数 1 是资源,布尔值在 C:\Users\Josh\SkyDrive\Default Sync Folder\Websites\IM\global.php 中的第 22 行 test3 警告:mysql_num_rows()期望参数 1 是资源,在第 26 行的 C:\Users\Josh\SkyDrive\Default Sync Folder\Websites\IM\global.php 中给出的布尔值

4

2 回答 2

2
$con=mysql_connect("$host","$db_username","$db_password","$db_name");

看起来非常奇怪

我想有很多 PHP 错误,但您似乎看不到它们。
在代码顶部添加这些行

error_reporting(E_ALL);
ini_set('display_errors',1);

然后检查您在错误消息中看到的每个函数名称的手册页

除此之外,您的主要问题是

您正在使用过时的库

这是必须的:

<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

// connect (better to be moved into included file)
$dsn = "mysql:host=localhost;dbname=messenger;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$db = new PDO($dsn,"Josh", "password", $opt);

// getting data
$stm = $db->query("SELECT * FROM messages WHERE `key`='Josh'");
$row = $stm->fetch();
$msg = $row['msg_array'];
于 2013-08-09T14:46:11.353 回答
0
mysql_connect("$host", "$db_username", "$db_password")or die("cannot connect to database"); 

mysql_connect($host, $db_username, $db_password)or die("cannot connect to database"); 

这些不是必须转义的字符串,它们是变量。

另外,添加:

error_reporting(E_ALL);
ini_set("display_erorrs","on");

此外,当使用单个 mysql_connection 时,您可以删除:

$con=mysql_connect(...);

它会自动选择当前的。

于 2013-08-09T14:48:00.853 回答