更新/回声不起作用

时间:2016-08-02 16:51:40

标签: php mysql sql pdo

我不明白为什么这不起作用:

$sql = "UPDATE tbl_users SET balance = balance - 250 WHERE userID = <?php echo $row['userID']; ?>";

我使用PDO

这里有什么问题?需要一些帮助

session_start();
require_once 'class.user.php';
$user_home = new USER();

if(!$user_home->is_logged_in()) {
    $user_home->redirect('index.php');
}

$stmt = $user_home->runQuery("SELECT * FROM tbl_users WHERE userID=:uid");
$stmt->execute(array(":uid"=>$_SESSION['userSession']));
$row = $stmt->fetch(PDO::FETCH_ASSOC);

$servername = "test.de.mysql";
$username = "test";
$password = "test";
$dbname = "test";


try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "UPDATE tbl_users SET balance = balance - 250 WHERE userID = <?php echo $row['userID']; ?>";

    // Prepare statement
    $stmt = $conn->prepare($sql);

    // execute the query
    $stmt->execute();

    // echo a message to say the UPDATE succeeded
    echo $stmt->rowCount() . " records UPDATED successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;

1 个答案:

答案 0 :(得分:0)

$sql = "UPDATE tbl_users SET balance = balance - 250 WHERE userID = " . intval($row['userID']);

另外我会提到你选择所有的userFields,而你只需要userID,这是不必要的mem浪费。