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

我必须升级我的VPS,并且从CentOS 6.x切换到CentOS 7.5
所以现在我发现PHP 7.0.1和MySQL 5.7

我在下面编写的脚本非常适合
PHP 5.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将数据库连接作为参数,而mysqli则不。

因此,将您的mysql_*更改为mysqli_*

您的问题中的示例:

mysql_query($query, $connessione)



mysqli_query($query, $connessione)

等等

如果您不确定不同的mysqli_*函数的语法是什么,那么我建议您查找一下。如果要从mysql更改为mysqli,This线程是一个不错的起点。

10-05 20:34
查看更多