0

I am running

$this->db->query("SELECT `id` FROM $table WHERE $table.id ='$product_id'");

that should return 92 but its returning the below why?

object(CI_DB_mysqli_result)#150 (8) { ["conn_id"]=> object(mysqli)#16 (18) { ["affected_rows"]=> int(1) ["client_info"]=> string(6) "5.5.30" ["client_version"]=> int(50530) ["connect_errno"]=> int(0) ["connect_error"]=> NULL ["errno"]=> int(0) ["error"]=> string(0) "" ["field_count"]=> int(1) ["host_info"]=> string(25) "Localhost via UNIX socket" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> string(10) "5.5.31-cll" ["server_version"]=> int(50531) ["stat"]=> string(150) "Uptime: 106781 Threads: 14 Questions: 30097132 Slow queries: 13 Opens: 1937675 Flush tables: 1 Open tables: 400 Queries per second avg: 281.858" ["sqlstate"]=> string(5) "00000" ["protocol_version"]=> int(10) ["thread_id"]=> int(373292) ["warning_count"]=> int(0) } ["result_id"]=> object(mysqli_result)#161 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) } ["result_array"]=> array(0) { } ["result_object"]=> array(0) { } ["custom_result_object"]=> array(0) { } ["current_row"]=> int(0) ["num_rows"]=> NULL ["row_data"]=> NULL}

4

3 に答える 3

6

mysqli_ オブジェクトを返しているので、次のような結果を取得してみてください

$query = $this->db->query("SELECT `id` FROM $table WHERE $table.id ='$product_id'");
$result = $query->result(); 
foreach($result as $row)
{
     echo "Id is ".$row['id']."<br>";
}

また、非推奨の mysql_* 関数の代わりに mysqli_* 関数を使用していることは明らかです

于 2013-06-12T05:46:40.690 に答える
3

マニュアルmysqli_resultに書かれているとおり、オブジェクトを返します。

実際のオブジェクトを取得するには、オブジェクトで呼び出す (または同様の)id必要があります。fetch_assoc()

if ($result = $this->db->query("SELECT id FROM $table WHERE $table.id ='$product_id'")) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("Fetched ID: %s\n", $row["id"]);
    }

    /* free result set */
    $result->free();
}
于 2013-06-12T05:46:47.280 に答える