当我使用PHP,MySQLI和激活的SSL连接到外部MySQL-DB(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-Connection。只有当我使用PHP7.1在我的网站空间(Strato www.strato.de)上传PHP脚本时,它才能用于SSL-Connection。
那么,为什么我不能在我的网站空间中使用带有ssl-connection的“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_ALL-Error Reporting:
注意:使用未定义的常量MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT - 在第101行的/mnt/web022/d2/18/51779718/htdocs/webservice_config/dbserver2.php中假定为'MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_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
致命错误:未捕获错误:在/mnt/web022/d2/18/51779718/htdocs/webservice_imikelgo/test.php:40中调用null上的成员函数fetch_assoc()堆栈跟踪:#0 {main}抛出第40行/mnt/web022/d2/18/51779718/htdocs/webservice_imikelgo/test.php
使用XAMPP我没有收到此通知。我怎么能解决这个问题?