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 ...

我一直在搜索,并且知道: - 数据库存在

  • 权限是正确的

  • 表存在

  • 表不为空

知道为什么会发生这个错误吗?

编辑: 添加了错误的图像: 图像错误

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 回答