ฉันจะตรวจสอบว่ารหัสต่อไปนี้มีผลลัพธ์ได้อย่างไร
ฉันลองใช้ฟังก์ชั่นที่ว่างเปล่าแต่มันคืนค่าFALSEเสมอ
$query = db_select('my_table', 't');
$query->condition('code', 10)
->fields('t', array('cid'));
$result = $query->execute();
ฉันจะตรวจสอบว่ารหัสต่อไปนี้มีผลลัพธ์ได้อย่างไร
ฉันลองใช้ฟังก์ชั่นที่ว่างเปล่าแต่มันคืนค่าFALSEเสมอ
$query = db_select('my_table', 't');
$query->condition('code', 10)
->fields('t', array('cid'));
$result = $query->execute();
คำตอบ:
ถ้าฉันแก้ไขผลลัพธ์ของการเรียก execute () ควรเป็นDatabaseStatementInterfaceซึ่งมีฟังก์ชันrowCount
หากคุณพิมพ์var_dump($result);
คุณจะเห็นว่า$result
มีแบบสอบถามและตัวแปรอื่น ๆ จึงไม่เคยว่างเปล่า
คุณสามารถใส่$result
ในforeach
ห่วงที่จะเห็นผล
foreach ($result as $record) {
var_dump($record);
}
ภายในforeach
วงคุณสามารถพิมพ์ผลลัพธ์ด้วยรหัสนี้
foreach ($result as $record) {
print $record->nid;
print $record->title;
}
หากมีเพียงหนึ่งระเบียนที่เป็นผลลัพธ์mysql_fetch_array()
จะใช้เพื่อจัดการกับระเบียน
foreach ($result as $record) { var_dump($record); }
ลองสิ่งนี้
while($record = $result->fetchAssoc()) {
print_r($record);
}
var_dump($result->rowCount());