0

私はgodaddyにテストデータベースを持っています.以前にも同様の問題がありましたが、stackoverflowの助けを借りて解決されました.ブラウザからファイル。

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

私は問題が何であるかを読みました.私が読んだことのいくつかは、私がDBに正しく接続していないことを示唆しています..私が抱えている問題...

これは私の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

mysql_*PDO と関数が混在しています。

次のようなことを試してください:

$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 に答える