2013-04-18 1 views
-1

Кто может дать мне совет? почему запрос не может предоставить мне ожидаемое значение? Благодарю.Отчет о подготовке Mysql - Выберите

$mysqli = new mysqli($GLOBALS["mysql_host"], $GLOBALS["mysql_user"],   $GLOBALS["mysql_passwd"], $GLOBALS["mysql_database"]); 
$stmt = $mysqli->prepare("SELECT one FROM table ORDER BY date DESC LIMIT 1"); 
$last = $stmt->bind_result($one); 
$stmt->execute(); 
$stmt->close(); 
$mysqli->close(); 

Echo $last; //it should be "abc" 
+0

@ -1: оставить комментарий –

+0

Ваш вопрос: «Кто может дать мне совет?». Ну, только тот, кто понимает, что вам нужно. Для этого ваш вопрос должен быть менее расплывчатым. – Cubetastic

ответ

4

Я думаю, вы должны execute, а затем вызвать fetch на mysql_stmt -Объекты. Потому что вы можете получить несколько результатов (строк).

С fetch вы будете продвигать свой результат-Курсор.

Документация: mysqli mysqli-stmt

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

/* prepare statement */ 
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) { 
    $stmt->execute(); 

    /* bind variables to prepared statement */ 
    $stmt->bind_result($col1, $col2); 

    /* fetch values */ 
    while ($stmt->fetch()) { 
     printf("%s %s\n", $col1, $col2); 
    } 

    /* close statement */ 
    $stmt->close(); 
} 
/* close connection */ 
$mysqli->close(); 

?> 
0

я могу.
посоветуете бы просто и ясно: не используют Mysqli

Использование PDO вместо

$stmt = $pdo->prepare("SELECT one FROM table ORDER BY date DESC LIMIT 1"); 
$stmt->execute(); 
$last = $stmt->fetchColumn(); 

echo $last; //it should be "abc" 

чистой, простой и работы

+1

Что случилось с MySQLi? –

+0

действительно, я бы предпочел PDO тоже. У этого есть хороший уровень абстракции. Существует [приятное объяснение в nettuts] (http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/) –