2017-08-26 12 views
1

php7で古いmysqlサーバ(サーバは4.0.20標準)に接続したいと思います。アップグレードmysqlサーバーまたはダウングレードPHPはオプションではありません。php7から古いmysqlサーバ(4.0.20標準)に接続

私はこれをやっています:$conn = mysqli_connect($local,$user,$pwd,$db,$port); しかし、私はこのエラー:Warning: mysqli_connect(): Connecting to 3.22, 3.23 & 4.0 is not supported. Server is 4.0.20-standardを得ています。 可能ですか?

+0

にこの行でエラーメッセージをmysqlの資格情報を変更しますかなり明確です。しかし、奇妙な部分は、アップグレードまたはダウングレードが不可能であるということです。しかし、あなたのPHPを使用するので、少し混乱します。なぜ古い環境でphpの新しいバージョンを使用するのですか?最新のPHPバージョンを既に使用している場合は、データベースを最新のバージョンに移行してください – Noob

+0

このような古いmysqlバージョンを使用する特別な理由はありますか? – Shadow

+0

@Noob私はリモートSQLサーバにアクセスするためにPHPクライアントを使用しています。私は互換性の理由(現在のサービスが動作している)のためにphpをダウングレードすることはできません。互換性の理由(同じphp)のためにmysqlサーバをアップグレードできません。 – PMateus

答えて

-1

ソリューション(教訓ソリューション、本番環境でこれを使用しないでください):

ステップ1:PHP7マシンにputty.exe + plink.exeをインストールします。ステップ2:あなた/私のためにすべての仕事をするためにthese methodsを作成しました。例1:

$query = "SELECT * FROM user"; 
$rs = select($query); 

if($rs) 
for($index = 0; $index < count($rs);$index++){ 
    //ALWAYS use this. Now u can use that array like a normal resultset $rs["lalala"] 
    $row1 = $rs[$index]; 

    //use this like usual 
    echo $rs["username"]; 
} 

例2:更新のために

$query = "SELECT * FROM user"; 
$rs = select($query); 

if($rs) 
for($index = 0; $index < count($rs);$index++){ 
    //ALWAYS use this. Now u can use that array like a normal resultset $rs["lalala"] 
    //$row1 = $rs[$index]; 

    //now you didn't the line above... 
    echo $rs[$index]["username"];//you'll need something like $rs[0]["username"] 
} 

/削除/あなたがinsert方法と同様のものを使用することができます挿入します。例3:

if(m_insert("insert into user (name,pwd,email) values ('kkk', 'hahaha', '[email protected]');")){ 
    echo "</br>true</br>"; 
} else { 
    echo "</br>false</br>"; 
} 

Remember1:あなたは、メソッド、変数(ホスト、データベース、ユーザ名、パスワードなど)を変更する必要があります... Remember2:$commands[0] = 'mysql -u username -pPASSWORD...'

+0

あなたのリンクのコードにはいくつかの重大な問題があります。最悪の場合は、 '$(whoami)'などのさまざまなシェル構文を使用してSSHコマンドにシェルコマンドを注入することが可能な場合があります。 – duskwuff

+0

あなたは絶対に正しいです。しかし、状況を考えれば、まったくの解決策はありません。その場合、メソッドの開始後にいくつかのセキュリティ検証を追加するだけです。私は両方のマシンに外部アクセス(ワン)がないのでこれをやっているので、私はそれを使って涼しいです。 – PMateus

関連する問題