添加到基础时出现PHP PDO错误

时间:2016-07-01 19:24:01

标签: php pdo

我在函数中发送变量应该在哪里运行PHP PDO命令,变量实际存在(我检查它)但是在PDO之后,我得到错误。

这是功能:

public boolean execute(String sql) throws SQLException {
    runAsyncOnServer(sql);
    TGetOperationStatusResp status = waitForOperationToComplete();

    **// The query should be completed by now
 -->   /*if (!status.isHasResultSet()) {
 -->     return false;
 -->   }*/**
    resultSet =  new HiveQueryResultSet.Builder(this).setClient(client).setSessionHandle(sessHandle)
        .setStmtHandle(stmtHandle).setMaxRows(maxRows).setFetchSize(fetchSize)
        .setScrollable(isScrollableResultset)
        .build();
    return true;
  }

这就是我得到的错误:

  

string(4)“rher”   

致命错误:未捕获的异常'PDOException'   消息'SQLSTATE [42000]:语法错误或访问冲突:1064   您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'name VALUES'rher''的第1行'   C:\ XAMPP \ htdocs中\海\的public_html \ ADMIN \后端\ DB \表格\ TypePlacesTable.php:30   堆栈跟踪:   C:\ XAMPP \ htdocs中\海\的public_html \ ADMIN \后端\ DB \表\ TypePlacesTable.php(30):   PDOStatement->执行()   C:\ XAMPP \ htdocs中\海\的public_html \ ADMIN \后端\的index.php(18):   抛出TypePlacesTable :: addMenu('rher'){main}    C:\ XAMPP \ htdocs中\海\的public_html \管理员\后端\ DB \表\ TypePlacesTable.php   在线 30

1 个答案:

答案 0 :(得分:0)

哦,现在正在工作,我只是忘记为变量添加“(”和“)”,需要这么做

public static function addMenu( $name ){
        $db = ConnectDB();
        $sql = "INSERT INTO " . self::getTableName() . " (name) VALUES (:nameMenu)";
        $stmt = $db->prepare ( $sql );
        $stmt->bindParam(':nameMenu', $name, PDO::PARAM_STR);
        $stmt->execute();
    }