【问题标题】:My Query Update error on php我在 php 上的查询更新错误
【发布时间】:2016-09-24 06:36:07
【问题描述】:

我的 php 文件有查询更新。但是当我运行这个文件时,我的查询错误。但是当我已经在数据库中试用时查询不是错误

<?php
session_start();

$conn = pg_connect("host=localhost port=5432 dbname=alc user=postgres password=postgres");

$training_id= "SELECT m.training_mst_id FROM tbl_user u, training_mst m WHERE u.user_id = m.trainer_id AND m.start_traning >= now() AND m.end_traning <= now() AND m.trainer_id = ".$_SESSION['user_id'];
$result = pg_query($conn,$training_id);
$query = "UPDATE training_mst set status='TRUE' where training_mst_id= ".$training_id;
$result2 = pg_query($conn,$query);

?>

我的错误:

警告:pg_query():查询失败:错误:在“SELECT”第 1 行或附近出现语法错误:...ning_mst set status='TRUE' where training_mst_id= SELECT m.t... ^ in D:\xampp\htdocs \FeedbackALC\sistemuser\open_feedback.php 第 9 行

【问题讨论】:

  • 您的变量$training_id 包含之前的sql 查询,而不是ID。
  • 代码中可能的拼写错误(训练而不是训练)... m.start_training >= now() AND m.end_training

标签: php postgresql


【解决方案1】:

正如@Geral Schneider 指出的那样,您在第二个 sql 语句中用作值的变量是原始 sql 查询而不是结果。您需要从初始记录集中检索所需的值 - 以下内容未经测试,但可能会指示如何继续。

<?php
    session_start();

    $conn = pg_connect("host=localhost port=5432 dbname=alc user=postgres password=postgres");

    $training_id= "SELECT m.training_mst_id FROM tbl_user u, training_mst m WHERE u.user_id = m.trainer_id AND m.start_traning >= now() AND m.end_traning <= now() AND m.trainer_id = ".$_SESSION['user_id'];
    $result = pg_query($conn,$training_id);

    if( $result ){

        $data=pg_fetch_object( $result );
        $id=$data->training_mst_id;

        $query = "UPDATE training_mst set status='TRUE' where training_mst_id= ".$id;
        $result2 = pg_query($conn,$query);
    }

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-16
    • 2018-04-12
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    相关资源
    最近更新 更多