2013-08-08 5 views
1

zf2를 이해하려고합니다.zend insert sql not work

내 코드 :

$sql = new Sql($dbAdapter); 

    $insert = $sql->insert('security'); 
    $insert->values(array(
      'user' => $userName, 
      'ip' => '', 
      'result' => 2 
    )); 
    $dbAdapter->query($insert->getSqlString(), $dbAdapter::QUERY_MODE_EXECUTE); 

오류 :

Notice: Attempting to quote a value without specific driver level support can introduce security vulnerabilities in a production environment. in /opt/projects/my/newSymbio/current/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Platform/Sql92.php on line 80

어떤 아이디어가?

답변

0

알아낼 수 있습니다.

$sql = new Sql($dbAdapter); 

$insert = $sql->insert('security'); 
$insert->values(array(
     'user' => $userName, 
     'ip' => '', 
     'result' => 2 
)); 
$statement = $sql->prepareStatementForSqlObject($insert); 
$results = $statement->execute(); 
0

여기 zf2에서 삽입물의 올바른 구문입니다

$data = array(
     ''user' => $userName, 
     'ip' => '', 
     'result' => '2' 
    ); 

    $this->tableGateway->insert($data); 

당신은 테이블에 데이터를 삽입 할 수있는 테이블의 객체를 얻을 필요가있다.

가 아니면 사용하는 등의 다른 방법은 다음과 같습니다

use Zend\Db\Sql\Sql; 

확인 당신이 선을 초과하여 사용하고 있습니다.

$selectString = $sql->getSqlStringForSqlObject($insert); 
$results = $this->dbAdapter->query($selectString, $dbAdapter::QUERY_MODE_EXECUTE); 

을 그리고이 시도는 $dbAdapter$this->dbAdapter에 변경 호출 할 필요가 있다고 생각 : 그리고 다음 코드를 사용하여 마지막 줄을 교체합니다.

+0

tableGateway 란 무엇입니까? – Subdigger

+0

@Subdigger tableGateway는 테이블 모델을 만드는 시간을 만드는 테이블의 개체입니다. –

+0

@Subdigger 나는 대답 체크를 업데이트했다. –