0
$result = mysql_query('SELECT * FROM phpfox_education_question where subject_id = 2 and ques_id =1');
var_dump($result);
//var_dump result is :- "resource(64) of type (mysql result)" in localhost and web host,but
while($row = mysql_fetch_array($result))
{
    var_dump($row); //**NOTHING DISPLAYED in web host server but in localhost**
}
4

2 に答える 2

0

これを追加してみてください:

var_dump(mysql_num_rows($result));

フェッチする行があるかどうかを確認するには、そうでない場合はそれが答えです。
ところで、PDO では、このコードは次のようになります。

$db = new PDO('mysql:dbname=default_db_name;host=127.0.0.1',$user,$pass);
//use prepared statmenets
$stmt = $db->prepare('SELECT * FROM your_db.phpfox_education_question WHERE subject_id = :subject_id AND ques_id = :ques_id');
//pass binds when executing the stmt
$stmt->execute(array(':subject_id' => 2, ':ques_id' => 1));
//number of rows found:
var_dump($stmt->rowCount());
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{//fetch rows as assoc array
    var_dump($row);
}

これは基本的な例であることに注意してください。PDO でできることは他にもたくさんあります。

更新:
より多くのデバッグ情報を取得するには、これを試してください:

try
{
    $db = new PDO();//connect, pass correct data here
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//cause PDO to throw PDOExceptions on error
    $stmt = $db->prepare('SELECT * FROM your_db.phpfox_education_question WHERE subject_id = :subject_id AND ques_id = :ques_id');
    $stmt->execute(array(':subject_id' => 1, ':ques_id' => 2));
    var_dump($stmt->rowCount());
    while($row = $stmt->fetch(PDO::FETCH_ASSOC))
    {
        var_dump($row);
    }
}
catch(PDOException $e)
{
    echo $e->getMessage();
    $db = null;
    return;
}
echo 'No problems with query<br/>';
$db = null;//disconnecto

エラーがスローされていないことを確認します。ある場合は、メッセージを確認し、何が問題なのかを見つけて修正します。それらを修正する方法が見つからない場合は、もちろん私たちがお手伝いします。

于 2012-11-05T13:01:14.357 に答える
0

これを試してください:

$query = "SELECT * FROM phpfox_education_question WHERE subject_id = '2' AND ques_id = '1'";
$result = mysql_query($query) or die(mysql_error()); // <--- added this
echo "Results: ".mysql_num_rows($result)."<br />"; // <--- added this to output result count
while($row = mysql_fetch_array($result))
{
    print_r($row); //**NOTHING DISPLAYED in web host server but in localhost**
}

これは使用されている減価償却コードです。

于 2012-11-05T12:55:45.767 に答える