2012-05-14 3 views
0

전체 행을 삭제하지 않고 두 개의 열을 업데이트하려고합니다. 다음은 내가 사용하는 것입니다 :MySQL : 준비된 문을 사용하여 테이블에서 두 개의 열을 삭제하는 중

$sql='update users set token='',timestamp='' where token=?'; 
    $stmt=$db_con->stmt_init(); 
    $stmt->prepare($sql_3); 
    $stmt->bind_param('s',$token); 
    $stmt->execute(); 

그러나이 오류는 저에게 T_CONSTANT_ENCAPSED_STRING을 제공합니다. 이제 MySQL CLI를 통해 쿼리를 사용할 때 쿼리가 올바르게 작동합니다. update users set token='',timestamp='' where token='blahblah'; 어떻게이 문제를 해결할 수 있습니까?

+0

기본 친구를 ;-) 생성하지 않습니다 왜 오류가 발생하지만 명령 줄에서 이잖아. –

+0

Yessir. 나는 지난 달에 시작했다. 지금까지 그것을 사랑 :) – Jukodan

답변

1

사용해야합니다.

$sql="update users set token='',timestamp='' where token=?"; 

통지 문자열의 시작과 끝에 큰 따옴표 (")를.

당신이 이해하지 않는 문자열 PHP에서 여러 작은 따옴표를 사용하고 오류가 발생하기 때문에. 당신이 필요 견적을 탈출 PHP를 말할 수 있습니다. 당신은 두 가지 방법으로 그것을 할 수 있습니다.

1) 견적의 뿅 PHP의 \ 이스케이프 문자를 사용하여.

'update users set token=\'\',timestamp=\'\' where token=?'; 

2) 작은 따옴표 대신에 문자열에 큰 따옴표를 사용하십시오.

"update users set token=\'\',timestamp=\'\' where token=?"; 

둘 다 작동해야합니다.

0

여기서는 쿼리가 작은 따옴표로되어 있고 쿼리 문자열에 작은 따옴표를 두 번 이상 사용했음을 알려드립니다. PHP는 다음에 인용하는 첫 번째 인용문에서 문자열을 받아 들일 것,이 오류를

$sql='update users set token='',timestamp='' where token=?'; to 
$sql="update users set token='',timestamp='' where token=?"; 
관련 문제