2013-10-24 37 views
1

我在插入語句時遇到了問題。它位於if語句中,並在用戶成功上傳和成像後使用。PDO:參數號無效:參數未定義。但我擁有所有的領域?

   $contenido = $filename; 
       $db = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD); 
       $data = $db->prepare("INSERT INTO publicaciones (autorID, autorNombre, nombre, claseDeContenido, contenido, palabras, etiquetas, fecha) VALUES (:autorID, :autorNombre, :nombre, :claseDeContenido, :contenido, :palabras, :etiquetas, :fecha)"); 
       $data->execute(array(':autorID,' =>$autorID, 
          ':autorNombre' =>$autorNombre, 
          ':nombre' => $nombre, 
          ':claseDeContenido' => $claseDeContenido, 
          ':contenido' => $contenido, 
          ':palabras' =>$palabras, 
          ':etiquetas' => $etiquetas, 
          ':fecha' => $fecha)); 

的錯誤是

PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in .... on line 215 

但有劇本中沒有該變量名的變化,有八個參數插入和我送8.我已經確認並$出生日期 ,這是在線,肯定是正在發送。

它可能是什麼?此函數的

無而不存在於它們各自的變量的所有字段運行。

if($autorID !== '' || $autorNombre !== '' || $nombre !== '' || $claseDeContenido !== '' || $contenido !== '' || $palabras !== '' || $etiquetas !== '' || $fecha !== '') 

注:圖像被成功地上傳

回答

5

你必須在參考:autorID一個多餘的逗號:

   $data->execute(array(':autorID,' =>$autorID, 
//            ^--- remove this comma 
+0

我怎麼沒有看到。謝謝 –

2
autorID, 

沒有定義

authorID 
但是,

是。

您用逗號分隔的列名,但是逗號不能與您在查詢執行數組中列名的一部分。

這樣做:的

$data->execute(array(':autorID' =>$autorID 

代替

$data->execute(array(':autorID,' =>$autorID 

而且你的代碼將運行良好。

1

但是我所有的領域?

你沒有。 「沒有定義參數」

意味着你正在試圖綁定未在查詢中定義一個參數。所以,你需要仔細檢查你的查詢。你自己。不要求別人爲你做。

相關問題