2017-08-20 16 views
-1

phpmyadminで文を実行すると正しく動作しますが、このPHPファイルに全く同じクエリをコピーして貼り付けると機能しません。PHP UPDATE文はクエリでは機能しますが、PHPコードでは機能しません

PHPコード:

if($_GET['vote'] == 1) { 
    echo "if statement ran"; 
    $sql = "UPDATE raids SET attendees = attendees +1 WHERE dateposted = '2017-08-19 16:15:46'"; 
    mysql_query($sql, $link); 
} 

マイリンク変数は、作業を行うと 'が' ステートメントが実行されます。他のSQL文は私に問題を与えていません。

PHPコードで使用されると、なぜ「出席者」が増えないのですか?

+1

['mysql_error()'](http://php.net/manual/en/function.mysql-error.php)は、その理由を示しています。そうでなければ 'WHERE'節がどの行とも一致しないことを意味します。 – axiac

+1

詳細情報を表示するには、mysql_query($ sql、$ link)またはdie(mysql_error());を追加してみてください。サイドノート:mysql_ *は非推奨です。 mysqliまたはPDOは、準備された文とともに使用してください。 – ishegg

+1

** **推奨されていない、安全でない** _mysql _ * - 機能は使用しないでください。 PHP 5.5以降(2013年)は廃止され、PHP 7(2015年)では完全に削除されました。代わりにMySQLiまたはPDOを使用してください。 2.あなたは** [SQL Injections](http://php.net/manual/en/security.database.sql-injection.php)に至るまで幅広くオープンしており、実際には[Prepared Statements](http: /php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用してください。これは上記のMySQLiまたはPDOを使用する場合に使用できます。 –

答えて

0

ミラノチェダは言ったように、MySQLは非難され、もはや安全ではありません。代わりにPDOまたは少なくともMySQLiを使用してください。あなたのコードのための

MySQLiを実装:

//MySQLi information 

    $db_host  = "localhost"; 
    $db_username = "username"; 
    $db_password = "password"; 

    //connect to mysqli database (Host/Username/Password) 
    $connection = mysqli_connect($db_host, $db_username, $db_password) or die("Error " . mysqli_error()); 

    //select MySQLi dabatase table 
    $db = mysqli_select_db($connection, "table") or die("Error " . mysqli_error()); 

    if(isset($_GET['vote']) && $_GET['vote'] !== NULL) { 

$vote = $_GET['vote']; 

if($vote == "1") { 
    echo "Vote is 1, updating the database"; 
    $sql = mysqli_query($connection, "UPDATE raids SET attendees = attendees + '1' WHERE dateposted = '2017-08-19 16:15:46'"); 
} 

} 

私は、これはあなたを助け願っています。がんばろう!

関連する問題