使用php更新表中的列?

时间:2014-09-27 00:10:34

标签: php mysql

我正在尝试更新cloumn.But每次最后一个数组都添加到table.But我想在一个cloumn上添加一个孔数组。

这是我的代码:

<?php
$keys=array(
    "tr-aa",
    "tr-ad",
    "tr-af",
    "tr-ag",
    "tr-ak",
    "tr-am",
    "tr-an",
    "tr-al",
    "tr-ar",
    "tr-av",
    "tr-ay",
    "tr-bk",
    "tr-br",
    "tr-bm",
    "tr-br",
    "tr-bc",
    "tr-bg",
    "tr-bt",
    "tr-bl",
    "tr-bd",
    "tr-bu",
    "tr-ck",
    "tr-ci",
    "tr-cm",
    "tr-dn",
    "tr-dy",
    "tr-du",
    "tr-ed",
    "tr-eg",
    "tr-en",
    "tr-em",
    "tr-es",
    "tr-ga",
    "tr-gi",
    "tr-gu",
    "tr-hk",
    "tr-ht",
    "tr-ig",
    "tr-ip",
    "tr-ib",
    "tr-iz",
    "tr-km",
    "tr-kb",
    "tr-kr",
    "tr-ka",
    "tr-ks",
    "tr-ky",
    "tr-kk",
    "tr-kl",
    "tr-kh",
    "tr-ki",
    "tr-kc",
    "tr-ko",
    "tr-ku",
    "tr-ml",
    "tr-mn",
    "tr-mr",
    "tr-ic",
    "tr-mg",
    "tr-ms",
    "tr-nv",
    "tr-ng",
    "tr-or",
    "tr-os",
    "tr-ri",
    "tr-sk",
    "tr-ss",
    "tr-si",
    "tr-sp",
    "tr-sv",
    "tr-su",
    "tr-sr",
    "tr-tg",
    "tr-tt",
    "tr-tb",
    "tr-tc",
    "tr-us",
    "tr-va",
    "tr-yl",
    "tr-yz",
    "tr-zo"
);
$q="UPDATE Cities SET CityKey=? ";
for ($i=0; $i<sizeof($keys); $i++) {
    $query = $baglanti->prepare($q);
    $query->execute($keys[$i]);
}
?>  

通常每次迭代pdo都会执行更新并准备sql语句。这看起来很正常。但是我无法意识到错误是什么?

我哪里错了?

由于

3 个答案:

答案 0 :(得分:1)

没有桌子很难提供帮助,但我已经看到了问题。

如果要在表中添加值,则应使用INSERT INTO而不是UPDATE。

INSERT INTO Cities (col1, Col2 ...) VALUES ('val1', 'val2' ...)

如果您确实要更新现有行,则应添加where语句,否则每次执行更新时都会更新表的所有值,而最后一次更新是唯一适用的。

UPDATE Cities SET CityKey=? WHERE [condition to match the good city]

答案 1 :(得分:0)

查看Mysqli :: execute()的规范:http://php.net/manual/tr/mysqli-stmt.execute.php 它不需要参数,你需要在每次执行http://php.net/manual/tr/mysqli-stmt.bind-param.php之前调用Mysqli :: bind_param()

但是您的查询完全没有意义,您可以立即将所有城市更新为相同的值。也许具体你想要实现什么。如果要将数据插入表中,则需要INSERT语句:http://www.w3schools.com/php/php_mysql_insert.asp

答案 2 :(得分:-1)

您应该更改查询:

$q="INSERT INTO Cities SET CityKey=?";