类mysqli的对象无法转换为字符串js php

类mysqli的对象无法转换为字符串js php,php,jquery,mysql,Php,Jquery,Mysql,我在overflow上看到关于这个问题的问题,但我找不到决定。 这是我代码的最后一个变体。 抱歉,我在php中使用了0:( 在循环之前,您需要运行查询并获得结果- $sql = ( "SELECT * FROM $tableName"); $result = mysqli_query($con, $sql); // remove quotes from variables, only query once $data = array(); while ( $row = mysqli_fetc

我在overflow上看到关于这个问题的问题,但我找不到决定。 这是我代码的最后一个变体。 抱歉,我在php中使用了0:(


在循环之前,您需要运行查询并获得结果-

$sql = ( "SELECT * FROM $tableName");
$result =  mysqli_query($con, $sql); // remove quotes from variables, only query once

$data = array();
while ( $row = mysqli_fetch_row($result) )....// loop through results

您可以对代码进行更多的改进。您假设查询将始终有效,您不应该这样做。您假设您将始终连接到数据库,您不应该这样做。您混合了数据库方法,您不应该这样做(mysql_u与mysqli_uu)

正如上面的评论员提到的,您的具体错误是因为这一行而来的:

  $row = mysql_fetch_row(mysqli_query("$con", "$sql"))
如果您查看它提到的特定错误,您正在尝试将MySQLi对象转换为字符串。MySQLi_query希望您传入一个字符串、一个MySQLi连接和一个查询()。当传入“$con”时,您正在尝试将$con对象(一个MySQLi类)转换为一个字符串,这是错误的

关于代码的其余部分,上面和注释中还提到了其他问题,但这将修复您遇到的特定错误

 mysqli_query($con, "$sql")
虽然您也不需要在$sql周围加引号,因为它已经是一个字符串了


    <?php 
        $host = "*****";
        $user = "*****";
        $pass = "******";

        $databaseName = "******";
        $tableName = "product";

        $con = mysqli_connect($host,$user,$pass);
        $dbs = mysqli_select_db($con, $databaseName);
        $sql = ( "SELECT * FROM $tableName");

        $data = array();
        $dataquery= mysqli_query($con, $sql);

        while ( $row = $dataquery->fetch_array() )
        {
          $data[] = $row;
        }
        echo json_encode( $data );
         mysqli_close($con);
       ?>

在下面的评论中可以看到这些变化

$con = mysqli_connect($host,$user,$pass,$databaseName );    //add the database name
//$dbs = mysqli_select_db($con, $databaseName);           //you can remove this then
$sql = ( "SELECT * FROM $tableName");
try                                                         //add a try catch to handle error
{
    $result = mysqli_query($con,$sql);                        //add result variable

    if($result)                                             //check if result was successful
    {
        while($row = mysqli_fetch_array($result))                //use mysqli_fetch_array instead
        {
            $data[] = $row; 
        }
    }
    else
    {
        throw new Exception('Unable to get data:'.mysqli_error($con));   //error message
    }
}
catch(Exception $e)
{
    echo $e->getMessage();              //print out error
}


mysqli_free_result( $result );                          //free the resources after used
mysqli_close($con);
echo json_encode( $data );

您正在混合使用mysqli和mysql。为了使调试更容易,您根本不做任何错误处理。在每行代码中塞进尽可能多的内容,您不会得到任何额外的分数。我强烈建议您打破这一顺序,并在查询过程中的每一步提供适当的错误处理。若要添加到@MikeBrant,请不要ur$con和$sql在引号中。
    <?php 
        $host = "*****";
        $user = "*****";
        $pass = "******";

        $databaseName = "******";
        $tableName = "product";

        $con = mysqli_connect($host,$user,$pass);
        $dbs = mysqli_select_db($con, $databaseName);
        $sql = ( "SELECT * FROM $tableName");

        $data = array();
        $dataquery= mysqli_query($con, $sql);

        while ( $row = $dataquery->fetch_array() )
        {
          $data[] = $row;
        }
        echo json_encode( $data );
         mysqli_close($con);
       ?>
$con = mysqli_connect($host,$user,$pass,$databaseName );    //add the database name
//$dbs = mysqli_select_db($con, $databaseName);           //you can remove this then
$sql = ( "SELECT * FROM $tableName");
try                                                         //add a try catch to handle error
{
    $result = mysqli_query($con,$sql);                        //add result variable

    if($result)                                             //check if result was successful
    {
        while($row = mysqli_fetch_array($result))                //use mysqli_fetch_array instead
        {
            $data[] = $row; 
        }
    }
    else
    {
        throw new Exception('Unable to get data:'.mysqli_error($con));   //error message
    }
}
catch(Exception $e)
{
    echo $e->getMessage();              //print out error
}


mysqli_free_result( $result );                          //free the resources after used
mysqli_close($con);
echo json_encode( $data );