0

私はこれを1日か2日試みてきましたが、他の人が同じように設定しているため、なぜ機能しないのか理解できません.

データベースからデータを返したいだけです。

これは、それを含む 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 がリソースであると想定し、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 で指定されたブール値

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 に答える