2017-11-16 10 views
-3

ここに更新されたコアがあります。それを行うには適切な方法ですか? 私はWebからチュートリアルに従ってPrepared Statementsを実行しようとしますが、うまく機能しません。それはPHPの更新を行う適切な方法ですか?

$Enrolsql = "Select * FROM Enrol WHERE ActivityID=$activityid AND UserPhone=$userPhone AND UseUp=1"; 

$Enrolresult = $conn->query($Enrolsql); 
if ($Enrolresult->num_rows > 0) { 

    $ssql = "UPDATE Enrol SET UseUp=0 WHERE ActivityID=$activityid"; 
    if (mysqli_query($conn, $ssql)) { 
     echo "+1+"; //successfully Used. 
    } else { 
     echo "+2+"; // System Error. 
    } 
} else { 
    echo "+0+"; // Coupon is not Vaild 
} 

$conn->close(); 

データベースのテーブル情報:http://php.net/manual/en/mysqli.query.phpによると

enter image description here

+3

。影響を受けた行の数を確認して、何が起こったのかを確認します。そして、あなたはSQLインジェクションを読むべきです。 – jeroen

+1

ifループは、クエリの実行と有効/無効値では関係ありません。 – pr1nc3

+2

問題に取りかかる前に、http://bobby-tables.comにアクセスし、SQLインジェクションについて学ぶ必要があります。実際にあなたのコードは本当に脆弱で、全く保存しません。システム全体についての深い知識がなくても、データベース全体を数秒でハッキングすることができます。決して直接クエリーにユーザー入力を入れないでください。代わりにprepared statementsを使用してください。準備されたステートメントと、bobby-tables.comでそれらを使用する方法について何かを学ぶことができます。本当に簡単なトピックであり、コードは2分で変更されます。私はこれを行うことを強くお勧めします。 – Twinfriends

答えて

0

mysqli_queryを返し、失敗した場合にFALSE。成功したSELECT、SHOW、DESCRIBEまたはEXPLAINクエリの場合、mysqli_query()はmysqli_resultオブジェクトを返します。他の成功したクエリの場合、mysqli_query()はTRUEを返します。

あなたはUPDATEを実行すると、アップデートが失敗しなかったと仮定されていることを考えると、あなたは、したがって、あなたがここに複数のチェックを行うことができます

+0

ありがとう、それは私のために役立ちます。 –

+0

@EricChongこれが役に立ちましたら、私の答えをアップアップしたり、それを受け入れられた答えとして考えてみてください。 – Spangen

+0

@EricChong あなたに役立つ場合は、この回答をupvoteできますか? – Spangen

0

+1+を印刷しているバックTRUEを取得されます(ただ効果がなかった):

チェックがあればエラー:

if (!mysql_error()) print 'Query executed successfully.'; 

チェック影響を受けた行:

if(mysql_affected_rows() || mysql_affected_rows() == 0){ 
    // no error 
} else { 
    // error 
} 
0

私はあなたにこのチュートリアルに関する完全なチュートリアルを提供しています。この記事では、PHPでのHTML実装による更新クエリについて説明します。だから始めましょう。

<?php 
 
require_once 'dbconnection.php'; 
 
if(isset($_REQUEST['submit'])){ 
 
$name = $_REQUEST['name']; 
 
$age = $_REQUEST['age']; 
 
$phone = $_REQUEST['phone']; 
 
$email = $_REQUEST['email']; 
 
$user_id=$_REQUEST['user_id']; 
 
$qry = mysqli_query($con,"UPDATE `user` SET `name`='".$name."', `email`='".$email."',`age`='".$age."',`phone`='".$phone."' WHERE `u_id`='".$user_id."'"); 
 
if(!$qry){ 
 
echo "Faild to insert data in database"; 
 
} 
 
else{ 
 
$_SESSION['success'] = "Data updated Successfully"; 
 
echo "<script>window.location.href='update.php?u_id='".$user_id."'</script>"; 
 
} 
 
} 
 
?>

こちらをクリックして:ちょうどあなたのクエリが正常に実行されたことを意味しfor insert, Update and delete complete query with HTML implementation in PHP

関連する問題