Php while循环中的mysql_fetch_数组在本地主机中工作,但在主机服务器中不工作

Php while循环中的mysql_fetch_数组在本地主机中工作,但在主机服务器中不工作,php,Php,尝试一下: $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 = 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**
}
$query=“从phpfox\u教育问题中选择*,其中主题id='2'和问题id='1';
$result=mysql\u query($query)或die(mysql\u error());// 尝试添加以下内容:

$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**
}
要查看是否有要提取的行,如果没有,这就是您的答案。
顺便说一句,在PDO中,此代码如下所示:

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);
}
试试看
{
$db=new PDO();//连接,在此处传递正确的数据
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//导致PDO在出错时抛出PDO异常
$stmt=$db->prepare('SELECT*FROM your_db.phpfox_education_question其中subject_id=:subject_id=:ques_id=:ques_id');
$stmt->execute(数组(':subject\u id'=>1',:ques\u id'=>2));
变量转储($stmt->rowCount());
而($row=$stmt->fetch(PDO::fetch\U ASSOC))
{
var_转储($row);
}
}
捕获(PDO$e)
{
echo$e->getMessage();
$db=null;
返回;
}
echo“查询没有问题
”; $db=null//断开

确保没有抛出错误,如果有,检查消息,找出错误并修复。如果您找不到修复它们的方法,我们当然会提供帮助。

Web服务器上的DB表可以吗?数据是否存在?连接详细信息是否相同?您的mysql凭据是否相同?web服务器上的表是否相同?请不要再使用
mysql.*
函数:正在弃用该扩展,请使用
PDO
mysqli.*
insteadvar_dump(mysql_num_rows($result));返回int(0)。但是,如果我直接在数据库中运行查询,它会工作,并且它也会找到数据。为什么不在我的应用程序中?您好,“SELECT*FROM phpfox_education_question”正在工作,但where子句“where subject_id=2和ques_id=1”不工作……显示没有错误……列名相同,但我不明白为什么它不工作。@Mostaqmahmud:我用一个示例更新了我的答案,说明了如何使用PDO调试查询。您仍然在使用
mysql.*
扩展,不过。。。请不要这样做,您的代码很可能会在不久的将来发出不推荐使用的警告。查询正在运行,但结果为int(0)。我确信有一些数据可以用于此查询。我已经在phpmyadmin中直接运行了这个查询,并找到了数据……请帮助……我已经修改了上面的代码。尝试插入数据库可能是值得的,可能您的数据库用户可能没有读取权限。仅一个ideaMy查询就可以从表中读取所有数据,但不能指定where子句。。。。。
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