不能使用尝试没有捕获

时间:2016-05-20 04:30:26

标签: php mysql sql

我收到了这个错误:

  

语法错误或访问冲突:1064 SQL语法中出错;

这是PDOStatement->execute()#1 {main}并且不能使用try without catch或者最后

我的代码是

$f_u_id = $_SESSION['memberID'];
try
  {
    $insert_file_info = $db->prepare("INSERT INTO uploads ('file_id','owner_id') VALUES ($newfilename, $f_u_id)");
    $insert_file_info->execute();
  }catch(PDOException $ee) 
    {
    $error[] = $ee->getMessage();
   } 

4 个答案:

答案 0 :(得分:1)

  • 字段应该不加引号或引用``。
  • 你应该用''包裹你的字符串。好多了 - 使用占位符来获取数据。

所以这是代码:

$insert_file_info = $db->prepare("INSERT INTO uploads (file_id, owner_id) VALUES (?, ?)");
$insert_file_info->execute(array($newfilename, $f_u_id));

答案 1 :(得分:0)

您需要从字段中删除引号,因为这只是列名,并将引号放在值中。

所以,试试这个查询

INSERT INTO uploads (file_id,owner_id) VALUES ("+ $newfilename +", "+ $f_u_id +")

注意:您可以refer this用于学习目的。

答案 2 :(得分:0)

在值中使用单个

INSERT INTO上传(file_id,owner_id)VALUES('$ newfilename','$ f_u_id')

答案 3 :(得分:0)

试试这种方式

$insert_file_info = $db->prepare("INSERT INTO uploads ('file_id','owner_id') VALUES ('"+$newfilename+"', "+$f_u_id+")");