Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我无法插入php oracle记录-错误prepare()null_Php_Oracle - Fatal编程技术网

我无法插入php oracle记录-错误prepare()null

我无法插入php oracle记录-错误prepare()null,php,oracle,Php,Oracle,我将一个mysql代码改编为oracle,但我从上面得到了这个错误,我已经寻找了很长时间,但我找不到任何可以帮助我的东西 Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\login_oracle\funcs\funcs.php:120 Stack trace: #0 C:\xampp\htdocs\login_oracle\registro.php(61):

我将一个mysql代码改编为oracle,但我从上面得到了这个错误,我已经寻找了很长时间,但我找不到任何可以帮助我的东西

 Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\xampp\htdocs\login_oracle\funcs\funcs.php:120 Stack trace: #0 C:\xampp\htdocs\login_oracle\registro.php(61): registraUsuario('wae', '$2y$10$kmC83r2H...', 'wqe', 'wad@awd.cl', 0, '33fc8f862db7095...', 2) #1 {main} thrown in C:\xampp\htdocs\login_oracle\funcs\funcs.php on line 120
conexion.php

<?php

// $mysqli=new mysqli("localhost","root","","login"); //servidor, usuario de base de datos, contraseña del usuario, nombre de base de datos

// if(mysqli_connect_errno()){
//  echo 'Conexion Fallida : ', mysqli_connect_error();
//  exit();
// }

try //significa que intente conectar y si hay un fallo que tome el error y pase a catch
    { 
         $mysqli = new PDO('oci:dbname=localhost', 'TRABAJOFINAL','TRABAJOFINAL'); 

    } 
    catch (Exception $e) 
    {
        die('Error: ' .$e->GetMessage()); //getmessage es una funcion o metodo del objeto e
    }
    finally
    {
        $mysqli = null; //vacio la memoria
    }
?>
它还有更多的代码,在funcs.php中调用函数registausario()

php有很多代码,它有registausario()

function registratoriusario($usuario、$pass\u hash、$nombre、$email、$activo、$token、$tipo\u usuario){
全球$mysqli;
$stmt=$mysqli->prepare(“插入到usuarios(usuario、密码、名称、更正、激活、令牌、id_tipo))
值(:usuari,:passwor,:nombr,:corre,:activacio,:toke,:id_tip);//bindValue(“:toke”,$token);
$stmt->bindValue(“:id\u tip”,$tipo\u usuario);
如果($stmt->execute()){
return returnaid();
}       
}
函数returnaid()
{
全球$mysqli;
$result=$mysqli->prepare(“从DUAL中选择sequencename.CURRVAL”);
$result->execute();
$num=$result->fetchColumn(0);
$stmt->close();
如果($num!=0)
{
警报($num);
返回$num;
}
其他的
{
返回0;
}
}
我在第61行指出了错误(它不影响开发)。
如果有人需要完整的代码,我可以发送它们(但问题在于我在“prepare()”中特别提到的那些函数中根据错误提到了“registausario”。

Try catch
最后总是调用
,基本上是在初始化连接后将其置零

RTM:

在PHP5.5及更高版本中,还可以在或之后指定finally块 而不是catch块。finally块中的代码总是 在try和catch块之后执行,无论 在恢复正常执行之前,已引发异常


Try catch
最后总是调用
,本质上是在初始化连接后将其置零

RTM:

在PHP5.5及更高版本中,还可以在或之后指定finally块 而不是catch块。finally块中的代码总是 在try和catch块之后执行,无论 在恢复正常执行之前,已引发异常


谢谢!我看到了很多有答案的帖子,但是没有一个对我有帮助。谢谢!我看到了很多有答案的帖子,但是没有一个对我有帮助。
require 'funcs/conexion.php';
    include 'funcs/funcs.php';
function registraUsuario($usuario, $pass_hash, $nombre, $email, $activo, $token, $tipo_usuario){

        global $mysqli;

        $stmt = $mysqli->prepare("INSERT INTO usuarios (usuario, password, nombre, correo, activacion, token, id_tipo)
VALUES(:usuari, :passwor, :nombr, :corre, :activacio, :toke, :id_tip)"); // <<<<<<< LINE 120

        $stmt->bindValue(":usuari",$usuario);
        $stmt->bindValue(":passwor",$pass_hash);
        $stmt->bindValue(":nombr",$nombre);
        $stmt->bindValue(":corre",$email);
        $stmt->bindValue(":activacio",$activo);
        $stmt->bindValue(":toke",$token);
        $stmt->bindValue(":id_tip",$tipo_usuario);

        if ($stmt->execute()){
            return retornaid(); 
        }       
    }

function retornaid()
    {
        global $mysqli;

        $result = $mysqli->prepare("SELECT sequencename.CURRVAL FROM DUAL");
        $result->execute();
        $num = $result->fetchColumn(0);

        $stmt->close();

        if($num!=0)
        {
            alert("$num");
            return $num;
        }
        else
        {
            return 0;
        }
    }