我有一个看起来像的数据库
COUNTRY RATES
AUD 0.5
BRL 1.2
CAD 1.6
CHF 1.4
CZK 2.5
现在我想用这个数组更新汇率
$rates = array (
'AUD' => '0.5',
'BRL' => '6.2',
'CAD' => '2.6',
'CHF' => '7.4',
'CZK' => '1.5',
);
我试过使用这段代码
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "eurotoforgein";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$table = 'rates';
$values = "'" . implode("','", array_values($rates)) . "'";
$sql = "UPDATE `eurotoforgein` SET 'RATES' WHERE rates = $values";
if(!$result = $conn->query($sql)){
die('There was an error running the query [' . $conn->error . ']');
}
else{
echo "Data Updated.";
}
但是我明白了 运行查询时出错 [您的 SQL 语法有误;检查与您的 MariaDB 服务器版本对应的手册,了解在第 1 行的“RATES”附近使用的正确语法,其中 rates =“0.5”、“1.2”、“1.6”、“1.4”、“2.5”]
欢迎任何帮助
最佳答案
这是我的解决方案:
$sql = '';
$rates = array (
'AUD' => '0.5',
'BRL' => '6.2',
'CAD' => '2.6',
'CHF' => '7.4',
'CZK' => '1.5',
);
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "eurotoforgein";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
foreach($rates as $iso=>$rate){
$sql .= "UPDATE `eurotoforgein` SET `RATES`='{$rate}' WHERE COUNTRY = '{$iso}'";
}
if(!$result = $conn->query($sql)){
die('There was an error running the query [' . $conn->error . ']');
}else{
echo "Data Updated.";
}
关于php - 通过关联数组的值更新 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37424035/