将脚本从PHP5.6移动到PHP7

将脚本从PHP5.6移动到PHP7,php,mysql,csv,Php,Mysql,Csv,我有个问题,希望有人能帮我解决 我不得不升级我的VPS,从CentOS 6.x切换到CentOS 7.5 现在我找到了PHP7.0.1和MySQL 5.7 我在下面写的剧本写得很好 PHP5.6和MariaDB,现在出错了 要使此脚本正常工作,什么是有效的解决方案? 谢谢大家 $connessione = mysql_connect("localhost", "myuser", "mypassword"); mysql_select_db("mydb", $connessione); $risu

我有个问题,希望有人能帮我解决

我不得不升级我的VPS,从CentOS 6.x切换到CentOS 7.5 现在我找到了PHP7.0.1和MySQL 5.7

我在下面写的剧本写得很好 PHP5.6和MariaDB,现在出错了

要使此脚本正常工作,什么是有效的解决方案? 谢谢大家

$connessione = mysql_connect("localhost", "myuser", "mypassword");
mysql_select_db("mydb", $connessione);
$risultato = mysql_query("SELECT * FROM mytable", $connessione);
$num_righe = mysql_num_rows($risultato);

if ($num_righe == 0) {
    echo "There are no new products";
} else {

    $query ="SELECT * FROM mytable";

    $nuovi_prodotti= mysql_query($query, $connessione) or die(mysql_error());
    $row_nuovi_prodotti = mysql_fetch_assoc($nuovi_prodotti);

    $intes ="Riferimento|ID|nome|plain_description|iva inclusa|id_fornitore|brand|tax|picture1|picture2|picture3|model_size|model_quantity|barcode";
    $fornitore ="1";
    $iva = "22";

    $righe.="".$intes."\n";
    do {
        $righe.= "".$row_nuovi_prodotti['reference']."|".$row_nuovi_prodotti['id_categoria']."|".$row_nuovi_prodotti['descrizione']."|".$row_nuovi_prodotti['descrizione']."|".$row_nuovi_prodotti['prezzoacquisto']."|".$row_nuovi_prodotti['prezzovendita']."|".$fornitore."|".$row_nuovi_prodotti['marca']."|".$row_nuovi_prodotti['dispo']."|".$row_nuovi_prodotti['EAN']."|".$iva."|https://www.mysite.it/cat/".$row_nuovi_prodotti['reference'].".jpg\n";    
    }
    while ($row_nuovi_prodotti_unica= mysql_fetch_assoc($nuovi_prodotti_unica));
        $filename = "nuovi-prodotti-tagliaunica.csv";
        file_put_contents($filename, $righe);
        echo "New products found: $num_righe - file CSV ok \n";
    }
    mysql_close($connessione);

出现此问题的原因是PHP 7.0及以后版本中不推荐使用
mysql.*
语法。您需要更改为
mysqli.*
PDO

您在评论中提到“已经选择了mysqli”,但问题中提供的语法是mysql和mysqli的混合语法。mysqli将数据库连接作为一个参数,而mysql没有

因此,将您的
mysql.*
更改为
mysqli.*

你的问题举例如下:

mysql\u查询($query,$connessione)

mysqli\u查询($query,$connessione)

等等


如果您对不同的
mysqli.*
函数的语法有疑问,我建议您查找它。如果您正在从mysql更改为mysqli,线程是一个很好的起点。

打开错误报告,您将看到错误。另外,
mysql.*
函数在PHP5.6中被弃用,在PHP7+中被完全删除。在Tobias F.评论的基础上,
mysql.*
被替换为
mysqli.*
——请记住,从
mysql.
升级不是一个简单的查找/替换作业。您应该查看php.net上的文档,了解更多信息。我已经选择了mysqli,但没有任何结果。请求的页面出错您没有使用mysqli,尽管您正试图将mysqli语法与添加的数据库连接参数一起使用。你的mysql必须是mysqli_*