【问题标题】:PHP calling out query with methodPHP用方法调用查询
【发布时间】:2017-08-27 14:16:53
【问题描述】:

我正在尝试使用查询调用方法,但无法使其正常工作。我可能说错了。

if (!empty($picturename) && !empty($productID)) {
	
	Product::set_main_pic($picturename, $productID);

}

public static function set_main_pic($picturename, $productID) {
        global $database;

        if(empty(($picturename) && empty($productID))) {
            return false;
        }
 
             $query = "UPDATE "
            . PX . self::$table_name
            . "SET main_picture = '" . $database->escape_value($picturename) . "' WHERE ID = " . $database->escape_value($productID);

        
            $database->query($query);

        
    }

【问题讨论】:

  • “我无法正常工作”是什么意思......你有错误吗?
  • 您的查询中有未加引号的值:SET main_picture = " . $database->escape_value($picturename) . ",您应该在值周围加引号。
  • 我看不到任何错误并且数据库没有更新。
  • 使用 var_dump($query);在 $database->query($query); 之前并分享输出
  • 这就是我得到的。 "string(63) "UPDATE katus_products SET main_picture = '123.jpg' WHERE ID = 3" 手动插入时查询有效。

标签: php mysql methods


【解决方案1】:

必须在 SET 前加一个空格确保 self::$table_name

$query = "UPDATE "
        . PX . self::$table_name
        . " SET main_picture = " . $database->escape_value($picturename) . " WHERE ID = " . $database->escape_value($productID)

【讨论】:

  • 感谢您的关注。解决了这个问题,但它并没有解决我的问题。
  • sql 代码似乎正确.. .. 你确定你有正确的 id .. 吗? .. 并且 $database 包含访问数据库所需的内容(连接等..)
  • $database 包含连接所需的一切。我还有其他可行的方法,但它们是 SELECT 而不是 UPDATE。
【解决方案2】:

我发现了我的错误。我有一双多余的 括号。感谢所有帮助过我的人。

固定:

if(empty($picturename) && empty($productID)) {
   return false;
}

之前:

if(empty(($picturename) && empty($productID))) {
   return false;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    相关资源
    最近更新 更多