0

このコードを使用して作成したデータベースに接続しようとしています。

<?php
function Conectarse()
{
    $host="localhost";
    $user="root";
    $password="root";
    $bda="toobebe_catalogo";

    if (!($link=mysql_connect($host,$user,$password)))
    {
        echo "Error conectando a la base de datos.<br>";
        exit();
    }
    else
    {
        echo "Éxito conectando con la base de datos.<br>";
    }

    if (!mysql_select_db($bda,$link))
    {
        echo "Error seleccionando la base de datos.<br>";
        exit();
    }
    else
    {
        echo "Éxito al encontrar la base de datos.<br>";
    }
    return $link;
}

$conn=Conectarse();

$sql="SELECT * FROM toobebe-octubre";
$db_fila = mysql_query($sql,$conn);
$ok=1;

while (($row = mysql_fetch_array($db_fila)) && $ok) 
{
    $valor=mysql_query($sql,$conn);

if(!$valor)
{
    $ok=0;
}   
}

?>

しかし、私がそれを実行すると、この間違いが発生します:

 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ...

私は検索していて、知っています:-データベースが存在します

  • 権限は正しい

  • テーブルが存在します

  • テーブルがnullではありません

この間違いが起こっている理由について何か考えはありますか?

編集: 間違いで画像を追加しました: 画像エラー

4

1 に答える 1

2

エラーは、データベースへの接続ではなく、クエリで発生します。テーブル名にハイフンが含まれているため、次のようにハイフンを囲む必要があります。

$sql = "SELECT * FROM `toobebe-octubre`";
$db_fila = mysql_query($sql, $conn);
$ok = 1;

while(($row = mysql_fetch_array($db_fila)) && $ok) 
{
    $valor=mysql_query($sql, $conn);
    if(!$valor)
    {
       $ok=0;
    }   
}

いくつかのヒントがあります。現在、使用mysql_*は非常に非推奨です。mysqli_*本当に最低限、または PDOを使用する必要があります。

また、テーブルからすべてSELECT *を必要とするかどうかは本当に疑わしいため、一般的に悪い習慣と見なされます。

于 2012-10-25T10:59:02.357 に答える