3

問題を抱えて!私はほとんど同じようなスレッドを見つけましたが、どれも役に立ちませんでした:(

MySQLデータベースから登録ユーザー数を取得するためのphpスクリプトを作成しました。スクリプトは私のローカルホストでうまく機能しています。それぞれ「root」、「root」、「localhost」である指定されたユーザー名、パス、およびホスト名を使用していますが、スクリプトは指定されたユーザー名/パス/ホストではなく、root @ localhost(パスワード:NO)を使用しています。ライブサーバーで。

ライブサーバーでMySQLユーザーを作成し、別のパスワードを設定しました。ホスト名はもちろんlocalhostではありません。新しく作成したmysqlユーザーデータでスクリプトを更新しました。しかし、スクリプトを実行するたびに、スクリプトがまだ「root」、「root」、および「localhost」を使用していることがわかります。

スクリプトを見てください:

    //database connection
    $conn = mysql_connect( "mysql.examplehost.com", "myusername", "mypass" );
$db = mysql_select_db ("regdb",$conn); //Oops, actually it was written this way in the script. I misstyped it previously. now edited as it is in the script.

    //Query to fetch data
$query = mysql_query("SELECT * FROM regd ");            
while ($row = mysql_fetch_array($query)): 
$total_regd = $row['total_regd'];
endwhile;   

echo $total_regd;

--デフォルトのユーザー名を変更して、phpMyAdminディレクトリにあるconfig.ini.phpファイルを渡すように言われる人もいます。これは役に立ちますか?ホスティングプロバイダーがそのディレクトリにアクセスする特権を与えていないため(スクリプトのテストに無料のホスティングを使用しているため)、または単に見つからなかったため、これを試しませんでした:(

助けてください....

4

2 に答える 2

4

序文:MySQL拡張機能は非推奨としてマークされています。mysqliまたはPDOを使用することをお勧めします


接続リソースを$connに格納しますが、mysql_query()の呼び出しでは使用せず、mysql_connect()の戻り値をチェックしていません。つまり、何らかの理由で接続が失敗した場合、mysql_query()は無料です。 "新しいデフォルト接続を確立します。

<?php
//database connection
$conn = mysql_connect( "mysql.examplehost.com", "myusername", "mypass" );
if ( !$conn ) {
    die(mysql_error()); // or a more sophisticated error handling....
}

$db = mysql_select_db ("regdb", $conn);
if ( !$db ) {
    die(mysql_error($conn)); // or a more sophisticated error handling....
}

//Query to fetch data
$query = mysql_query("SELECT * FROM regd ", $conn);
if (!$query) {
    die(mysql_error($conn)); // or a more sophisticated error handling....
}

while ( false!=($row=mysql_fetch_array($query)) ): 
    $total_regd = $row['total_regd'];
endwhile;   

echo $total_regd;


編集:1行だけを処理しているようです。
行をwhileループに移動するかecho、(本当に1つのレコードのみが必要な場合は)sqlステートメントでそのように言って、ループを削除します。

// Query to fetch data
// make it "easier" for the MySQL server by limiting the result set to one record
$query = mysql_query("SELECT * FROM regd LIMIT 1", $conn);
if (!$query) {
    die(mysql_error($conn)); // or a more sophisticated error handling....
}

// fetch data and output
$row=mysql_fetch_array($query);
if ( !$row ) {
    echo 'no record found';
}
else {
    echo htmlspecialchars($row['total_regd']);
}
于 2012-12-11T08:50:47.763 に答える
1

初めに:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

あなたのmysql_error()は何ですか?:)

于 2012-12-11T08:53:32.133 に答える