私はこのコードで自分自身を試してみましたが、そこにすべてのポイントを-100に置き換えています。この行から100ポイントを引く方法を教えてください。数字だけ: 私のコード:行からデータ数を減算する方法
$sql = mysql_query("UPDATE `users` SET user_points = '$user_points-100' WHERE user_id=".$_SESSION['user']);
私はこのコードで自分自身を試してみましたが、そこにすべてのポイントを-100に置き換えています。この行から100ポイントを引く方法を教えてください。数字だけ: 私のコード:行からデータ数を減算する方法
$sql = mysql_query("UPDATE `users` SET user_points = '$user_points-100' WHERE user_id=".$_SESSION['user']);
はこのように、単一引用符や$記号を取り除く:
$sql = mysql_query("UPDATE `users` SET user_points = user_points-100 WHERE user_id=".$_SESSION['user']);
Tankあなたは今はうまく動作しています –
クエリの外で行うのですが、スクリプト内で行いますか?
//Take user_points and subtract 100
$user_points = $user_points - '100';
$sql = mysql_query("UPDATE `users` SET user_points = '$user_points'
WHERE user_id=".$_SESSION['user']);
あなたの言うように変更しようとしていますが、それは-100だけすべてのuser_points –
PDOを使用したSQLインジェクションを避けるようにしてください。また、SQL文に$
シンボルは必要ありません。
define('DB_HOST', 'localhost');
define('DB_NAME', 'your_database');
define('DB_USER', 'your_username');
define('DB_PASSWORD', 'your_passworde');
try {
//Make your connection handler to your database
$conn = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASSWORD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
$user_id = $_SESSION['user'];
$sql = "UPDATE users SET user_points = (user_points - 100) WHERE user_id = :user_id";
$stmt = $conn->prepare($sql);
$stmt->execute(array(':user_id'=>$user_id));
} catch(PDOException $e) {
echo $e->getMessage();
die();
}
また、informationもチェックしてください。
'UPDATE users SET user_points = user_points-100 WHERE user_id =' ... –