我正在尝试一些非常简单的东西,但由于某种原因,它不会像我预期的那样工作。为此,我想选择一个特定的行,然后通过更新将该行分配给另一个表。这是我要运行的脚本:<?php$passedID = $_POST["upvotedurl"];$mysqli = new mysqli('localhost', 'root', '', 'osscom_users_test');$sqlstm = "SELECT * FROM image_uploads WHERE THMPATH=?";$fstmt = $mysqli->prepare($sqlstm);$fstmt->bind_param("s", $passedID);$fstmt->execute();$fstmt->store_result();$json = $fstmt->get_result()->fetch_assoc();foreach ($json as $value) { $val1 = $value['THMPATH']; // this is empty, why??? $sql = "UPDATE image_uploads SET IMGNAME=? WHERE THMPATH=?"; $stmt = $mysqli->prepare($sql); $stmt->bind_param("ss", $val1, $passedID); $stmt->execute(); $stmt->close();}$fstmt->close();$mysqli->close();?>由于一个奇怪的原因,我无法解释查询为空的变量$value形式。SELECT正如您在示例中看到的那样,我得到的THMPATH绝对不是空的,并且我也在UPDATE下面使用相同的值。如果我会使用类似的东西,$val1 = "Wololo"它会毫无问题地工作。为什么我的$value(在这种情况下$value['THMPATH'])是空的?这没有意义吗?更新运行时file_put_contents('../session/log.txt', print_r($json, true));是这样的结果:Array( [ID] => 511 [OWNER] => User Name [IMGNAME] => Wagirigoingi [IMGTAGS] => image, photo, picture [IMGPATH] => 1028525690.jpg [THMPATH] => ../thumbnails/5560921208_username.jpg etc..)所以选择有效,但我仍然无法获得值。
1 回答
万千封印
TA贡献1891条经验 获得超3个赞
您的结果是数组中的一条记录。当您这样做时foreach ($json as $value)
,$value
将有 511、用户名、Wagirigoingi 等。在某些时候,$value
将在数组中具有与 THMPATH 对应的值$json
,但在任何时候都不会$value
是一个数组,因此$value['THMPATH']
永远不会有效。
您大概想要的是foreach
完全消除循环。
- 1 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消