2010-09-07 30 views
10

Khi sử dụng mysql_fetch_object() để trả về đối tượng từ truy vấn MySQL, đôi khi tên cột có dấu cách trong đó và không thể được đặt bí danh, chẳng hạn như khi chạy SHOW CREATE PROCEDURE. Định nghĩa thủ tục được trả về trong một cột có tên là Create Procedure. Trong trường hợp của tôi, lớp trừu tượng dữ liệu chỉ cho phép sử dụng mysql_fetch_object(), vì vậy tôi không thể đơn giản sử dụng mysql_fetch_assoc() để giải quyết vấn đề này.Làm cách nào để bạn truy cập các cột có khoảng trống trong chúng thông qua mysql_fetch_object?

Tôi có thể truy cập các cột có dấu cách khi sử dụng mysql_fetch_object() không?

Trả lời

4

Điều này khiến tôi mất một lúc để giải mã, vì vậy tôi nghĩ tôi sẽ đăng nó ở đây, do đó có câu trả lời nhanh. :)

// Internally, this db abstraction layer uses mysql_fetch_object(). 
$query = $db->query('SHOW CREATE PROCEDURE `%s`', 'test'); 
foreach ($query as $row) { 
    $procedure = $row->{'Create Procedure'}; 
} 

Tôi không biết điều này có cụ thể cho phiên bản PHP hay không, nhưng nó hoạt động dưới PHP 5.3.1 trên Windows, ít nhất.

17

Nói chung,

$recordname->{"my column name"} 

sẽ làm các trick.

Bạn cũng có thể thực hiện print_r($record); để tìm hiểu cách các cột được thể hiện trong đối tượng.

+0

Làm việc cho tôi - hoàn hảo. –

-2

Sử dụng dấu ngoặc kép. Ví dụ: "tên có dấu cách"

+0

Không phải là một câu trả lời rất mô tả, điều này. '$ obj = (đối tượng) mảng (' tên với dấu cách '=>' thử nghiệm '); echo $ obj -> "name with spaces"; ' không hoạt động, bạn cần niềng răng xoăn. – Drarok

Các vấn đề liên quan