-1

この古いバージョンの php を php7 で動作させるにはどうすればよいですか? Construct 2 で作成したゲームのハイスコアを投稿するために使用する mysql データベースがあります。しかし、ホストが php7 に更新されたため、動作を停止しました (現時点では、php 7.1 から 7.3 の間で選択できます)。

私は長い間、ウェブを検索して、再び機能させようとしましたが、解決できませんでした。

getscores.php と savescores.php の 2 つの php ファイルがあります。

ウェブブラウザ (Chrome) で getscores.php を表示しようとすると、次のエラーが表示されます: Fatal error: Uncaught Error: Call to undefined function mysql_query() ...そして 18 行目を参照しています。

申し訳ありませんが、私はphpとmysql-databasesの知識がほとんどありません

誰か助けてくれる人がいたら、よろしくお願いします。:) ///ソウルマシーン!

getscores.php

<?php
header('Access-Control-Allow-Origin: *');

$host="localhost"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="database"; // Database name 
$tbl_name="scores"; // Table name

// Connect to server and select database.
$link = mysqli_connect("$host", "$username", "$password", "$db_name");

// Retrieve data from database
$sql="SELECT * FROM scores ORDER BY score DESC LIMIT 10";   // The 'LIMIT                 10' part will only read 10 scores. Feel free to change this value
$result=mysql_query($sql);

// Start looping rows in mysql database.
while($rows=mysqli_fetch_array($result)){
echo $rows['name'] . "|" . $rows['score'] . "|";

// close while loop 
}

// close MySQL connection 
mysql_close();
?>

savescores.php

<?php

$db = "database";//Your database name
$dbu = "username";//Your database username
$dbp = "password";//Your database users' password
$host = "localhost";//MySQL server - usually localhost

$dblink = mysqli_connect($host,$dbu,$dbp,$db);

if(isset($_GET['name']) && isset($_GET['score'])){

 //Lightly sanitize the GET's to prevent SQL injections and possible XSS     attacks
 $name = strip_tags(mysql_real_escape_string($_GET['name']));
 $score = strip_tags(mysql_real_escape_string($_GET['score']));

 $sql = mysqli_query($dblink, "INSERT INTO `$db`.`scores` (`id`,`name`,`score`) VALUES ('','$name','$score');");
 if($sql){

      //The query returned true - now do whatever you like here.
      echo 'Your score was saved. Congrats!';

 }else{

      //The query returned false - you might want to put some sort of error reporting here. Even logging the error to a text file is fine.
      echo 'There was a problem saving your score. Please try again later.';

 }

}else{
 echo 'Your name or score wasnt passed in the request. Make sure you add ?    name=NAME_HERE&score=1337 to the tags.';
}

mysqli_close($dblink);//Close off the MySQL connection to save resources.
?>    
4

1 に答える 1

0

mysql_querymysql_closemysqli_queryと にmysqli_closeそれぞれ置き換えます。

<?php
header('Access-Control-Allow-Origin: *');

$host="localhost"; // Host name 
$username="username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="database"; // Database name 
$tbl_name="scores"; // Table name

// Connect to server and select database.
$link = mysqli_connect("$host", "$username", "$password", "$db_name");

// Retrieve data from database
$sql="SELECT * FROM scores ORDER BY score DESC LIMIT 10";   // The 'LIMIT                 10' part will only read 10 scores. Feel free to change this value
$result=mysqli_query($link, $sql);

// Start looping rows in mysql database.
while($rows=mysqli_fetch_array($result)){
echo $rows['name'] . "|" . $rows['score'] . "|";

// close while loop 
}

// close MySQL connection 
mysqli_close($link);
?>

これはうまくいくはずです。

于 2019-01-20T20:19:13.023 に答える