这个问题已经有了答案:
“Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource”
1个答案
我正在开发一个脚本,用csv文件更新我的数据库!
我在运行时出错了
警告:mysql_query():提供的参数不是第47行/home/vinem/www/batch/batch_stock.php中的有效mysql链接资源
这是所讨论的代码:
<?php
/*---------------------CONNEXION MYSQL----------------------*/
$servername='';
$database_username='';
$database_password='';
$database_name='';
set_time_limit(1600);
$link = mysql_connect('', '', '');
if (!$link) {
die('Connexion impossible : ' . mysql_error());
}
echo 'Connecté correctement';
mysql_close($link);
//$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];
$batch ="UPDATE declinaison_stock_produit SET stock='4' where upc = '56939'";
$requete = mysql_query($link, $batch);
echo("Stock mis à jour ");
echo("Fin de l'éxécution du batch");
}
最佳答案
你打开你的连接,这是好的,但在它之后,你关闭连接链接。所以这种联系不再存在。
去掉这个,
mysql_close($link);
编辑1
您的代码很容易
SQL injection
,您仍然在使用MySQL
,即使它已经被弃用,您应该对准备好的语句使用MySQLi
或PDO
。