php - 使用更新中选择的值,获取未定义的属性

标签 php mysql sql

我在不同的更新语句中使用 select 的值时遇到问题。

下面,我运行一个 select 语句,print_r($existingContent) 正在打印带有 num_rows、field_count 等的对象。但我不知道如何转储我需要的 ID。

我目前在这一行遇到错误:

WHERE id = $existingContent->existingContent

表示 $existingContent 是一个未定义的属性。我假设这是因为我如何从选择中设置它,但我无法调试,因为我的 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);
 }

最佳答案

一旦你通过避免 sql injection susceptible code 解决了问题,问题就会消失。

在这种情况下,PHP 中无法出现更复杂的字符串插值,例如 $existingContent->existingContent

您还可以将 SELECTUPDATE 合并到单个 UPDATE 查询中。

UPDATE content
JOIN panels ON content.id = panels.cont_id
SET content = :content
WHERE page_id = :page

关于php - 使用更新中选择的值,获取未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359465/

相关文章:

php - 拉拉维尔 : How to submit a registration using a bootstrap Modal?

mysql - 使用文本框重命名 mysql 表

mysql - 如何从mysql中的数据行中删除换行符?

java - 存储过程通过 Java 运行比直接在数据库上运行慢 30%

sql - 有没有办法将 Oracle 中的所有 char(1) 列更改为 number(1) 列?

php - Extjs & 资源管理器和文件上传

php - 如何在 PHP/MySQL 准备语句中正确指定字符串字段的默认值

javascript - 如何根据下拉选择和按钮单击从 MySql 数据库中检索数据?

mysql - 连接 2 个表 SQL -Where 子句 2 行在一张表中

php - 返回并添加到数据库