2015-01-21 9 views
0
나는 다음과 같은 코드를 준비하기 위해 노력하고있어

전에 복귀했다 : 그것은 (멤버 함수의 bind_param에 전화 "라고 반환전화는 준비

foreach((array)$problem as $word) { //cycles through each word in the problem, grabs tag name like word, looking through each separate tag table 
    foreach((array)$tables as $table) { //cycles through list of keyword tables, checks keywords against tables 
     $query = $mysqli->prepare("SELECT ?.name FROM ? WHERE ?.words LIKE '?'"); //grabs table name where keyword exists 
     $query->bind_param('ssss',$table,$table,$table,$word);  
     $query1 = $query->execute(); 
     $resultThree::fetch_assoc($query1); 
      if(!is_null($resultThree)) { //if keyword exists 
       array_push($pretag, $resultThree['name']); //push to pretags 
      } 
    } 
} 

)를 /home/whatpzcp/public_html/test/search.php on line 25 "(준비된 명령문 행)에있는 오브젝트 이외의 오브젝트에 추가하십시오. 분명히 이것은 MySQL이 아무 것도 반환하지 않는다는 것을 의미합니다. 그러나 준비된 문장을 사용하기 전에이 동일한 코드가 잘 작동했기 때문에 더 이상 나에게 혼란을줍니다.

내 첫 프로그램이므로 쉽게 나갈 수 있습니다! 또한 모든 MySQL 문 또는 사용자 입력을 처리하는 문을 준비해야합니까?

+0

테이블과 열을 바인드 할 수 없습니다. 기간. 구문 적으로 유효하지 않은''? ''주위의 따옴표는 말할 것도 없습니다. –

답변

0

PHP docs에 따르면 식별자 (예 : 테이블 또는 열 이름)에 대해 ? 바인딩 변수를 사용할 수 없으며 SELECT 문에서 반환 할 열의 이름을 지정하는 선택 목록에서 사용할 수도 있고 두 피연산자를 모두 지정할 수도 있습니다. = 등호와 같은 이진 연산자 "를 반환합니다.