将脚本从php5.6移到php7

pxy2qtax  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(381)

我有个问题,希望有人能帮我解决。
我不得不升级我的vps,从centos 6.x我切换到centos 7.5,所以现在我找到了PHP7.0.1和MySQL5.7
我在下面写的脚本在php5.6和mariadb上运行得很好,现在出错了。
要使此脚本正常工作,什么是有效的解决方案?谢谢大家。

  1. $connessione = mysql_connect("localhost", "myuser", "mypassword");
  2. mysql_select_db("mydb", $connessione);
  3. $risultato = mysql_query("SELECT * FROM mytable", $connessione);
  4. $num_righe = mysql_num_rows($risultato);
  5. if ($num_righe == 0) {
  6. echo "There are no new products";
  7. } else {
  8. $query ="SELECT * FROM mytable";
  9. $nuovi_prodotti= mysql_query($query, $connessione) or die(mysql_error());
  10. $row_nuovi_prodotti = mysql_fetch_assoc($nuovi_prodotti);
  11. $intes ="Riferimento|ID|nome|plain_description|iva inclusa|id_fornitore|brand|tax|picture1|picture2|picture3|model_size|model_quantity|barcode";
  12. $fornitore ="1";
  13. $iva = "22";
  14. $righe.="".$intes."\n";
  15. do {
  16. $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";
  17. }
  18. while ($row_nuovi_prodotti_unica= mysql_fetch_assoc($nuovi_prodotti_unica));
  19. $filename = "nuovi-prodotti-tagliaunica.csv";
  20. file_put_contents($filename, $righe);
  21. echo "New products found: $num_righe - file CSV ok \n";
  22. }
  23. mysql_close($connessione);
nr7wwzry

nr7wwzry1#

出现问题的原因是 mysql_* php7.0和forward中不推荐使用语法。你需要换成 mysqli_* 或者 PDO .
你在评论中提到你“已经选择了mysqli”,但是你的问题中提供的语法是mysql和mysqli的混合语法。mysqli将数据库连接作为参数,而mysql没有。
因此,改变你的想法 mysql_*mysqli_* .
你的问题举例如下: mysql_query($query, $connessione)mysqli_query($query, $connessione) 等。
如果你对不同语言的语法有疑问 mysqli_* 函数,那么我建议查一下。如果您要从mysql改为mysqli,那么这个线程是一个很好的起点。

相关问题