2014-03-18 1 views
1

연구를 통해, stackoverflow를보고, Google을 통해 살펴본 결과, 같은 문제가있는 여러 사람들을 발견했으며 솔루션은 일반적으로 "mysqlnd에서만 사용 가능"입니다.PHP mysqli_stmt :: get_result() 정의되지 않은 메소드

그래서 일부 코드를 둘러 보았습니다.하지만 말할 수있는 한, mysqlnd는 내 서버에서 사용할 수 있습니다. 그래서 내가하는 이유는 이 아니고중복이라고 생각합니다.

$id = $stmt->get_result(); 

어떤 이유 코드의 라인은, 내 로컬 XAMPP 서버에서 완벽하게 작동 내 응용 프로그램에서 딸꾹질의 원인이 될 것으로 보인다. 내 공개 서버 구성에 문제가 있다고 생각하지만 무엇을 알아 내지 못합니다.

PHP는이 오류를 던지고있다 : 다시, 내 코드 내 로컬 서버에서 잘 작동

[18-Mar-2014 15:39:27 America/Denver] PHP Fatal error: 
Call to undefined method mysqli_stmt::get_result() in 
/home/PATH/PAGE.php on line 47 

. 여기

MySQLi Seems to Exist...

MySQLnd Seems to Exist...

그냥 좋은 측정을위한

, 내 PHP 버전이 5.4.22입니다 ... 내 phpinfo()의 일부 스냅 샷입니다. 그리고 마지막으로 php -i | grep mysqlnd을 시스템 콘솔에서 실행하면 mysqlnd => enabled이됩니다.

그래서 ... 무슨 일이야? 내가 뭘 놓치고 있니? 당신의 배려에 감사합니다. 나는 이것이 다른 사람들을 도울 수 있기를 바랍니다. 더 많은 코드 (요청한대로) ...

$mysqli = new mysqli('localhost', 'usr', 'pass', 'table'); 
$chkid = "SELECT * FROM `students` WHERE student_id = ? LIMIT 1"; 
if ($mysqli->connect_error) { //We'll catch an error or two here. 
    die("{CNCT}"); 
} 
$arrays = json_decode($_POST['data'], true); //Here, we take the JSON string and create PHP arrays 
for ($x=0; $x<=((count($arrays))-1); $x++) { //We count the array 
    $stmt = $mysqli->prepare($chkid); 
    $inputz = ($arrays[$x]['id']); 
    $stmt->bind_param("s", $inputz); 
    $stmt->execute(); 
    $id = $stmt->get_result(); //THIS LINE 
    $stmt->close(); 
    $row = $id->fetch_array(MYSQLI_NUM); 
} 

내가 코드를 망치지 않고 필요한 모든 것을 적절하게 잘라내 었으면 좋겠다. 그것은 내 로컬 XAMPP 서버에서 작동합니다.

+0

libmysqlnd isntalled가없는 경우 get_result()가 작동하지 않는다고 생각합니다. – raser

+0

'var_dump ($ stmt)'는 무엇을 말합니까? – tlenss

+0

단순히 오류가 나타내는 줄 이상의 코드를 게시해야합니다. 우리는'$ stmt'가 어떻게 초기화되었는지를 볼 필요가 있습니다. – Sammitch

답변

0

많은 것을 시도한 후에 MySQL (NOT MySQL 시스템)과 MySQL Improved (MySQLi)에서 Apache (WHM, EasyApache 사용)를 재구성했습니다. 이전에는 시스템의 MySQL과 MySQL의 조합을 사용했습니다. 빌드가 완료된 후에 모든 것이 마술처럼 작동했습니다.

감사합니다.

1

mysqlnd가 존재할뿐만 아니라 mysqli가 mysqlnd 지원을 사용하여 특별히 빌드되어야합니다. 이렇게하려면, PHP 구성 옵션 당신은 phpinfo 출력에

--with-mysqli=mysqlnd 

을 함께 구축 할 수 있으며, mysqlnd는 mysqli 섹션에서 Client API library version 항목 아래에 언급되어야한다 :

좋은 : enter image description here

좋지 않아 : enter image description here

나는 항상 수동으로 전체 서버를 구성하기 때문에 XAMPP에 대해서는 전혀 몰랐다. 다른 버전이나 다른 배포판을 찾아야 할 것 같습니다.

관련 문제