【发布时间】:2014-02-05 10:29:55
【问题描述】:
我的问题对我来说似乎是一个相当小的问题,但我无法找到合适的解决方案。 设置:我有一个表“city_locations”,其中包含“国家”、“城市”、“经度”、“纬度”等列。国家由 2 个字母的 ISO 代码给出。我希望它们是全名。
为此,我导入了“countrycodes”表,其中仅包含“name”和“code”列。
$namechange = $con->prepare("UPDATE city_locations SET country=? WHERE country=?");
$list = $con->prepare("SELECT name, code FROM countrycodes");
$list->execute();
$list->bind_result($name, $code);
$namechange->bind_param('ss', $name, $code);
while ($list->fetch()){
while ($namechange->execute()) {}
echo "$code is now $name <br>";
}
我成功检索了(外部)while 循环中的所有对。
$namechange->execute();但是什么也没做 - 我尝试了使用和不使用 while 循环,尝试在查询中使用 LIMIT 0, 10000 (尽管我不完全确定我理解 LIMIT 是否正确)。无论有没有 while 循环,该语句都不会做任何事情。使用 LIMIT 0, 10000 时,语句无法正确预置(给出错误)。
我还尝试在 while 循环的每个步骤中绑定新参数 - 似乎也没有做任何事情。
从我的网络界面运行相同的命令时,它工作正常。但是,在这种情况下,我必须手动输入所有 200 多个代码。工作量好像有点大。
非常感谢您的帮助, 凯杰尔德。
编辑:$con 的类型是 mysqli。
【问题讨论】:
-
这是mysqli。那么,它会给我表格的前 10.000 个还是适合我查询的第一个 10.000 个?
-
它将从索引 0 -> 10.000 返回
-
@JeroenBollen mysqli OO 风格
-
切题的问题:改用 PDO 会更聪明还是更多的是品味问题?我的项目还处于早期阶段(不到 1000 行代码),并且肯定愿意改变。
-
绑定参数不应该在第一个while循环内吗?
标签: php mysql loops mysqli prepared-statement