在其他更新语句中为select使用值时遇到问题。
下面,我运行一条select语句,print_r($existingContent)
使用num_rows,field_count等打印对象。但是我不知道如何转储所需的ID。
我当前在此行遇到错误:
WHERE id = $existingContent->existingContent
说$ existingContent是一个未定义的属性。我假设这是因为我是如何通过select设置它的,但是我无法调试,因为我的print_r没有显示我的实际响应的结构。我只需要在我的where子句中使用该select语句中的ID
$checkContentExists = "SELECT cont_id as existingContent FROM panels WHERE panel_type_id = $panelID AND page_id = $pageID";
$existingContent = $mysqlConn->query($checkContentExists);
print_r($existingContent);
$updateContent = "
UPDATE content
SET content = '$content'
WHERE id = $existingContent->existingContent;";
if($mysqlConn->query($updateContent) === TRUE){
echo "Record Updated";
}
更新
while ($row = mysqli_fetch_assoc($existingContent)){
print_r($row);
//If i use the commented out code I get a 500 error
// $updateContent = "
// UPDATE content
// SET content = '$content'
// WHERE id = $row[existingContent];
// ";
// $updateResult = $mysqlConn->query($updateContent);
}
答案 0 :(得分:0)
一旦您避免使用sql injection susceptible code解决了问题,问题就会消失。
在这种情况下,PHP中不会发生更复杂的字符串内插,例如$existingContent->existingContent
。
您还可以将SELECT
和UPDATE
组合成一个UPDATE
查询。
UPDATE content
JOIN panels ON content.id = panels.cont_id
SET content = :content
WHERE page_id = :page