我准备了一个脚本,用于更新我的在线商店数据库中的字段"stock"。当我运行它时,没有出现任何错误!但是,数据库中不会发生任何更改那么问题是什么呢?它不能访问数据库是因为它的名字吗?
任何想法?下面是代码:
<?php
/*---------------------CONNEXION MYSQL----------------------*/
$servername='';
$database_username='';
$database_password='';
$database_name='';
set_time_limit(1600);
$link = mysql_connect($servername, $database_username, $database_password);
//$link = mysql_connect('mysql5-6.240', 'vintagemvm75', 'pu1df4mu');
if (!$link) {
die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
//$link = mysql_connect($servername,$database_username,$database_password) or die("Erreur de connexion au serveur"); //mysql_connect
//mysql_select_db($link, $database_name) or die("Erreur de connexion à la BDD"); //old: mysql_select_db
/*---------------------FIN CONNEXION MYSQL----------------------*/
/*---------------------RÉCUPÉRATION DU FICHIER STOCK et INITIALISATION----------------------*/
$fichier = file("../batch/export_solsys.csv");
$fp = fopen("../batch/export_solsys.csv","r");
$upc= "";
$stock="";
$ligne = 1;
/*---------------------FIN RÉCUP----------------------*/
echo("Parcours du fichier...")."<br/>";
/*---------------------MISE A JOUR DU STOCK----------------------*/
while($tab=fgetcsv($fp,1000,';'))
{
$champs = count($tab);//nombre de champs dans la ligne en question
$ligne++;
$upc = $tab[0];
$stock = $tab[7];
echo("upc: ").$upc."<br/>";
echo("stock: ").$stock."<br/>";
$batch = "SELECT stock FROM declinaison_stock_produit where upc = '56939'";
$requete = mysql_query($batch, $link);
$batch1 ="UPDATE declinaison_stock_produit SET stock = '4' where upc = '56939'";
$requete1 = mysql_query($batch1, $link);
echo("Stock mis à jour ");
echo("Fin de l'éxécution du batch");
}
?>
您还没有填写传递给mysql_connect
的连接变量。此外,您甚至没有使用mysql_select_db()
来连接数据库。它应该是这样的:
mysqli_select_db($link, $database_name);
否则,按如下方式填写mysql_connect()
中的数据库名称。
$link = mysql_connect($servername, $database_username, $database_password, $database_name);
为了连接到数据库,您需要填写这些变量:
$servername='';
$database_username='';
$database_password='';
$database_name='';
您已经注释掉了硬编码的行