PHP MySqli、SSL和MySqli_real_escape_string赢得';行不通

PHP MySqli、SSL和MySqli_real_escape_string赢得';行不通,php,ssl,mysqli,Php,Ssl,Mysqli,当我用PHP、MySQLI和激活的SSL连接到外部MySQL数据库(MariaDB 10)时…: /* create a connection object which is not connected */ $conn = new mysqli(); $conn->init( ); /* set connection options */ $conn->options( MYSQLI_OPT_CONNECT_TIMEOUT, $timeo

当我用PHP、MySQLI和激活的SSL连接到外部MySQL数据库(MariaDB 10)时…:

    /* create a connection object which is not connected */
    $conn = new mysqli(); 
    $conn->init( );
    /* set connection options */ 
    $conn->options( MYSQLI_OPT_CONNECT_TIMEOUT, $timeout );
    /*connect to server*/
    $conn->real_connect($SQL_Server, $SQL_Benutzer, $SQL_Passwort, $SQL_Datenbank, 3306, NULL, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
…我不能使用:

     mysqli_real_escape_string($conn, $_GET['clientid'])
……或者

     $conn->mysqli_real_escape_string($_GET['clientid'])
结果将为空。当我禁用SSL时…:

     $conn->real_connect($SQL_Server, $SQL_Benutzer, $SQL_Passwort, $SQL_Datenbank, 3306);
…它会起作用的

在使用XAMPP的iMac上,它也可以使用SSL连接。只有当我使用PHP7.1将PHP脚本上传到我的Web空间(Strato www.Strato.de)时,它才不会与SSL连接一起工作

那么,为什么我不能在我的Web空间上使用带有ssl连接的“escape_string”

编辑:

这是我检查连接错误的方式:

function sql_connect($Datenbank){
    $Servernr = get_ServerNr();
    $Server = get_Server($Servernr);
    $SQL_Servernr = $Server->Nr;
    $SQL_Server = $Server->Url;
    $SQL_Benutzer = $Server->Benutzer;
    $SQL_Passwort = $Server->Passwort;
    $SQL_Datenbank = $Datenbank;
    $timeout = 5;

    $conn = new mysqli(); 
    $conn->init( );
    $conn->options( MYSQLI_OPT_CONNECT_TIMEOUT, $timeout );
    $conn->real_connect($SQL_Server, $SQL_Benutzer, $SQL_Passwort, $SQL_Datenbank, 3306, NULL, MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT);
    if ($conn->connect_errno) {
        echo $conn->connect_errno;
        die();
    }
    return $conn;
} 
编辑2:

现在我激活了E_所有错误报告:

注意:在第101行的/mnt/web022/d2/18/51779718/htdocs/webservice\u config/dbserver2.php中使用未定义常量MYSQLI\u CLIENT\u SSL\u not\u VERIFY\u SERVER\u CERT-假定为'MYSQLI\u CLIENT\u SSL\u not\u VERIFY\u SERVER\u CERT'

警告:mysqli::real_connect()要求参数7为整数,字符串在第101行的/mnt/web022/d2/18/51779718/htdocs/webservice_config/dbserver2.php中给出

警告:mysqli_real_escape_string():第34行/mnt/web022/d2/18/51779718/htdocs/webservice_imikelgo/test.php中的对象或资源mysqli无效

警告:mysqli_query():第38行/mnt/web022/d2/18/51779718/htdocs/webservice_imikelgo/test.php中的对象或资源mysqli无效

致命错误:未捕获错误:在第40行的/mnt/web022/d2/18/51779718/htdocs/webservice_-imikelgo/test.php中调用null上的成员函数fetch_assoc()。php:40堆栈跟踪:#0{main}抛出/mnt/web022/d2/18/51779718/htdocs/webservice_-imikelgo/test.php


对于XAMPP,我没有收到这个通知。如何解决此问题?

为什么不使用参数化查询?连接上是否还有其他功能,即任何类型的查询?为什么不使用参数化查询?因为查询有很多参数,比如Id、uuid、client、network、xml、base64。我读过手册,但我没发现问题所在。连接上是否还有其他功能,即任何类型的查询?我试试看。请稍等。“有许多参数”不是不使用参数化查询的有效理由。查询结果也是空的。