我一直试图这样做一两天,但是我无法理解为什么它不起作用,因为我有其他人以同样的方式设置。
我只想简单地从数据库中返回一些数据。
这是一个只包含它的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”,仅此而已。
这是我的数据库
我一直试图简单地让一些东西回来几个小时而且让我感到恼火。 我已经有很多错误,因为我一直在改变它,但这一次,没有任何回报。
这应该可以正常工作,因为我多次返回数据并知道如何从头开始。我的所有其他网站都正常工作,我也没有更新phpMyAdmin。
这可能是一个小错误,但它确实让我烦恼 任何帮助将不胜感激,谢谢。
我放了
error_reporting(E_ALL);
ini_set('display_errors',1);
在我的代码顶部并返回:
测试// // TEST2 警告:mysql_fetch_assoc()期望参数1为资源,布尔值在第22行的C:\ Users \ Josh \ SkyDrive \ Default Sync Folder \ Websites \ IM \ global.php中给出 TEST3 警告:mysql_num_rows()要求参数1为资源,布尔值在第26行的C:\ Users \ Josh \ SkyDrive \ Default Sync Folder \ Websites \ IM \ global.php中给出
答案 0 :(得分: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'];
答案 1 :(得分: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(...);
它会自动选择当前的那个。