我在函数中发送变量应该在哪里运行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
答案 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();
}