php - 从 Slim Framework 调用 Mysql 函数

标签 php mysql stored-procedures pdo slim

我正在尝试使用 Slim 框架调用我在 MySQL 中创建的函数。 这是我在 DBHandler.php 中的函数:

public function validarSincronismo($pCnpj, $pLogin, $pImei){
    $stmt = $this->conn->prepare("SELECT sincronizar(?,?,?)");
    $stmt->bind_param("sss", $pCnpj, $pLogin, $pImei);
    $result = $stmt->execute();
    $stmt->close();
    return $result;
}

这是我的 index.php 中的函数:

$app->post('/validar', function() use ($app) {
    $db = new DbHandler();
    $cnpj =    $app->request->post('cnpj');    
    $login = $app->request->post('login');
    $imei = $app->request->post('imei');
    $msg = $db->validarSincronismo($cnpj, $login, $imei);                 
    $response["error"] = false;
    $response["message"] = $msg;
    echoRespnse(201, $response);
});

我在 phperror.log 中收到以下错误:

[17-Sep-2015 21:12:37 UTC] PHP Fatal error:  Call to a member function execute() on boolean in C:\MAMP\htdocs\test\include\DbHandler.php on line 69

我尝试使用 CALL sincronizar(?,?,?); 但它不执行 SQL 函数。

最佳答案

感谢@GustavoStraube 和@NorbertvanNobelen 花时间调查我的问题!我能够使用 SELECT sincronizar() 调用我的 SQL 函数。问题是我在错误的数据库中创建了函数。我的错! :/

所以我最终的工作代码如下所示:

DBHandler.php 中的函数

public function validarSincronismo($pCnpj, $pLogin, $pImei){
    $stmt = $this->conn->prepare("SELECT sincronizar(?,?,?)");
    $stmt->bind_param("sss", $pCnpj, $pLogin, $pImei);
    $stmt->execute();
    $stmt->bind_result($result);
    $stmt->fetch();
    $stmt->close();
    // Returns a message
    return $result;
}   

index.php 中的函数

$app->post('/validar', function() use ($app) {
            $db = new DbHandler();
            $cnpj = $app->request->post('cnpj');    
            $login = $app->request->post('login');
            $imei = $app->request->post('imei');
            $msg = $db->validarSincronismo($cnpj, $login, $imei);                 
            $response["error"] = false;
            $response["message"] = $msg;
            echoResponse(201, $response);
        });

关于php - 从 Slim Framework 调用 Mysql 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32640280/

相关文章:

javascript - 如何从js调用php方法?

php - preg_replace() 替换第二次出现

mysql - phpmyadmin 权限仅适用于某些数据库

sql - 在存储过程事务中执行 addlinkedServer 错误

导入时激活 MySQL 存储过程

MySQL 单个查询语句的多个输出

php - 如何从表中选择列值?

php - 组合访问器和修改器逻辑以将自定义属性添加到模型

php - Mysqli 检索表打印标题而不是数据

sql - 将一个 sql 查询附加到另一个