2016-03-09 2 views
-3

Я пытался получить мой PHP-код для MySQLi из MySQL, но у меня есть проблема, когда дело доходит до преобразования mysql_result.эквивалент mysql_result в mysqli

Я читал abit по этой теме, и я попробовал некоторые предложения, но я не мог получить какие-либо предложения, чтобы их решить.

Я также довольно новыми для PHP, так что не ожидайте многого от меня: P

Я хостинг мой апача на Centos 6, которые имеют PHP версии 5.3.3

вот как я использовать mysql_reslut

$domain = mysql_query("SELECT `vsite` FROM `server1` WHERE `id` = '$id';"); 

$domain1 = mysql_result($domain); 

Так что моя проблема заключается в том, что, mysqli_result dosn't работу по моей версии PHP или что dosn't существует.

Ошибка:

PHP Fatal error: Call to undefined function mysqli_result() in /var/www/xxx/xx 
+0

В чем проблема ?? – devpro

+0

Проблема в том, что функция dos не существует в MySQLi – Leifus

+0

Вы должны использовать mysql_fetch_assoc ($ domain) –

ответ

1

Вы должны использовать mysqli_fetch_assoc()

Пример:

$domain = mysqli_query($conn,"SELECT `vsite` FROM `server1` WHERE `id` = '$id'"); 
while($row = mysqli_fetch_assoc($domain)) { 
    // your stuff 
} 

отметить также, что здесь $conn ваша связь link identifier.

Side Примечание:

Прекратите использование mysql_* расширения его устаревший и близко в PHP 7, пожалуйста, используйте mysqli_* или PDO.

+0

Не думайте, что он должен использовать интерфейс, который был устаревшим и теперь удален в новейшей версии php – Kordi

+0

@Kordi: да, примечание стороны поможет ему избежать устаревших функций ... спасибо – devpro

+1

его не только осудил его 'удален' в новейшей версии. – Kordi

-1

Проблема заключается в том, что не является функцией точной mysqli_result(), как вы хотите, что легко возвращает результат подобного. Тем не менее, я нашел функцию at this link удобства, которые тиражирует функциональность, которую вы ищете:

function mysqli_result($res,$row=0,$col=0){ 
    $numrows = mysqli_num_rows($res); 
    if ($numrows && $row <= ($numrows-1) && $row >=0){ 
     mysqli_data_seek($res,$row); 
     $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res); 
     if (isset($resrow[$col])){ 
      return $resrow[$col]; 
     } 
    } 
    return false; 
} 
+0

Забавно, что эта функция началась [здесь, на StackOverflow] (http://stackoverflow.com/questions/2089590/mysqli-equivalent-of-mysql-result/20961496#20961496), а затем я отправил ее в свой блог, чтобы помочь больше людей. Круг жизни. –

0

если вы новичок там несколько подводных камней в вашем коде. Вы используете интерфейс, который удаляется в версии newes php. Не используйте это больше И лучше привязать параметры, в связи с Sql Injection. Поэтому просто используйте этот код. Также включена обработка ошибок.

// create connection to DB_NAME 
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);  

// prepare the statement 
$stmt = $mysqli->prepare("SELECT `vsite` FROM `server1` WHERE `id` = ?"); 
// if there was an error in the statement output it and die 
if (!$stmt) { 
    echo $mysqli->error; 
    exit(); 
} 
// bin $id as string param more variables like ("ss",$id,$id2) 
$stmt->bind_param("s", $id); 
// execute the statement 
$stmt->execute(); 
// bind the result 
$stmt->bind_result($domain); 
// assuming only on result will come if not use a while($stmt->fetch()) loop 
$stmt->fetch(); 

echo $domain; // just outputs the `vsite` 

// close the statement and connection 
$stmt->close(); 
$mysqli->close(); 
Смежные вопросы