0

我在godaddy上有一个测试数据库,我之前也遇到过类似的问题,但是在stackoverflow的帮助下它得到了解决。所以我实际上使用了相同的解决方案但是现在我在尝试加载我的php时遇到了很多错误来自浏览器的文件。

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/content/97/8603797/html/countryQuery.php on line 14

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/content/97/8603797/html/countryQuery.php on line 14

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/content/97/8603797/html/countryQuery.php on line 16

Warning: mysql_close(): no MySQL-Link resource supplied in /home/content/97/8603797/html/countryQuery.php on line 18
Database Output

我已经阅读了问题所在,并且我阅读的一些内容表明我没有正确连接到数据库。但我只是在做我已经阅读/被告知的事情,并且真的不知道我还能做些什么来解决问题我遇到的问题...

这是我的 php 代码,如果有人有建议或解决方案,我将不胜感激。

<?

 $hostname = 'mydatabasename.db.6666666.hostedresource.com';
  $database = 'mydatabasename';
  $username = 'myusername';
  $password = 'secretsecret';

  // establish a connection
  $db = new PDO("mysql:host=$hostname;dbname=$database",$username,$password);


$query="SELECT * FROM `Countries`";

$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Database Output</center></b><br><br>";

$i=0;
while ($i < $num) {

$country=mysql_result($result);

echo "<b>$country<br>";

$i++;
}

?>

输出应该只是我在我的数据库的国家表中拥有的国家名称列表。其中包含值。

4

2 回答 2

4

您正在混合 PDO 和mysql_*函数。

尝试这样的事情:

$db = new PDO("mysql:host=$hostname;dbname=$database",$username,$password);
$db->setAttribute(PDO::ATTR_AUTOCOMMIT, true);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql="SELECT * FROM `Countries`";

$numRows=$dbh->exec($sql);
echo "There were $numRows selected with:<b> $sql </b><br><br>";
$db=null;
unset($db);

从 PDO 连接获取数据时,我通常使用FETCH_INTO选项执行以下操作:

$stmt = $db->query($sql);
$obj = $stmt->setFetchMode(PDO::FETCH_INTO, new userStructure);
// I do normally have a class matching the row I wan:

foreach($stmt as $userStructure)
{
    $someObject->year=$userStructure->year;
    $someObject->month=$userStructure->month;
    unset($stmt);
}
于 2012-08-06T08:20:57.190 回答
0

确保在使用 PDO 连接时也包括端口。这看起来像是您在托管环境中执行此操作。检查有关所使用端口的安装指南。

于 2012-08-06T08:32:24.283 回答