PHP奇怪的错误“0:”。可能的对象语法问题?

时间:2010-04-29 17:18:19

标签: php mysql

我正在尝试将网站从一家托管公司转移到另一家托管公司。我使用000webhost,直到客户端托管和域名。现在客户端拥有他们的域名和托管,使用FatCow.com,我不能为我的生活,调试我的PHP代码。我没有收到任何错误。我有一个成功的数据库连接。如果你在程序上显示数据,它可以工作,但是当我尝试使用我的原始对象时,某些东西正在破坏并且只返回“0:”。我有所有的错误。

在网站工作的旧服务器上:

PHP Version 5.2.11

MySQL版本:5.0.81

在新服务器上我得到“0:”:

PHP Version 5.2.12

MySQL版本5.0.32

我已经设置了一个测试页面来测试数据库连接的变量输出。

以下是我的代码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
try
  {
   $link = mysql_connect('connectionstring', 'username', 'password'); 
  if (!$link) { 
      die('Could not connect: ' . mysql_error()); 
  } 
  else{
  $db = mysql_select_db('a8210422_lit'); 
  }
  if($db){



     include_once('admin/classes/clsPOW.php');
     include_once('admin/classes/clsProviders.php');

     $pow = new POW();
     $prov = new Providers();

     $new = $pow->getNew();

     $newAr = $new->val();

     $get = $prov->getAll($newAr['providerId']);

     $getAr = $get->val();

     $img = $getAr['image'];
     $name = $getAr['provider'];
     $desc = $getAr['description'];
     $zip = $getAr['zip'];
     $web = $getAr['link'];
     if($zip==0){
      $zip = "Unavailable"; 
     }

    print_r($getAr);



  }
  else{
   print 'fail!'; 
  }
    }

//catch exception
catch(Exception $e)
  {
  echo 'Message: ' .$e->getMessage();
  }



?>

// Class POW

require_once('clsSql.php');
require_once('clsResult.php');
include_once('/hermes/web07/b1323/moo.madisoncountyliterac/assets/includes/db.php');    
class POW{
    public function getNew(){
        //instantiate the sql class
        $SQL=new sql();                     
        //Run a query - Result is automatically stored in the class

        $sel = "SELECT providerId
                FROM litProviders
                WHERE image != ''
                ORDER BY RAND()
                LIMIT 1";

        $q=$SQL->query($sel);

        return $q;
    }


}

//类提供者

require_once('clsSql.php');
require_once('clsResult.php');
include_once('/hermes/web07/b1323/moo.madisoncountyliterac/assets/includes/db.php');
class Providers{    
    public function getAll($where=""){
        if($where == ""){
            $getAllQuery = "SELECT * FROM litProviders";
        }
        else{
            $getAllQuery = "SELECT * FROM litProviders WHERE providerId = '".$where."'";
        }       
        //instantiate the sql class
        $SQL=new sql();                 
        //Run a query - Result is automatically stored in the class
        $q=$SQL->query($getAllQuery);
        return $q;
    }

    public function submit($id="", $provider, $description, $zip, $image, $link){

        if($id != ""){
            //update
            $query = "UPDATE litProviders SET provider = '".$provider."', description = '".$description."', zip = '".$zip."', image = '".$image."', link = '".$link."'
                      WHERE providerId = '".$id."' ";

            $message = "The provider has been updated.";
        }
        else{
            //insert    
            $newid = md5(uniqid());

            $query = "INSERT INTO litProviders 
                      VALUES ('".$newid."','".$provider."','".$description."','".$zip."','".$image."', '".$link."')";

            $message = "You have added a new provider.";                          
        }
        //instantiate the sql class
        $SQL=new sql();                 
        //Run a query - Result is automatically stored in the class
        $q=$SQL->query($query);

        return $message;

    }
    public function delete($id=""){
        if($id !=""){
            $delQuery = "DELETE FROM litProviders WHERE providerId = '".$id."'";    
            //instantiate the sql class
            $SQL=new sql();                     
            //Run a query - Result is automatically stored in the class
            $q=$SQL->query($delQuery);
            if($q){
                return true;    
            }
            else{
                return false;   
            }
        }
        else{
            return "No ID was provided for deletion.";  
        }
    }
}

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。

我不知道确切的原因或你的问题,但我会告诉你我过去的情况:

我创建了一个.inc文件来连接数据库,所以我只发布我真正实现它的代码:

require"../References/connection.inc";
$con=connect();
if(@ mysql_select_db($dbname,$con))showerror();

此代码在我的页面上删除了“错误0:”消息。我写的其他页面没有显示这个,所以我注意到我忘了将if()的内部文本括在另一组括号中并否定它。

工作代码(没有“错误0:”消息)是:

require"../References/connection.inc";
$con=connect();
if(!(@ mysql_select_db($dbname,$con)))showerror();

答案 1 :(得分:1)

如果你不打印除了它们之外的其他东西,那么打印变量是没有用的。

你应该

print_r(array(
    "thing" => $thing,
    "stuff" => $stuff,
    "dwarf" => $dwarf,
));

答案 2 :(得分:0)

我显示了同样的错误,结果是由于在选择数据库时没有包含缺少的第二个(可选)连接参数。

ex(错误):mysql_select_db($dbname)

ex :(已修复):mysql_select_db($dbname,$con)