2016-04-21 8 views
1

Zuerst weiß ich, dass mysql veraltet ist. Wird zu mysqli wechseln, sobald ich das Problem herausgefunden habe. Meine Abfrage aktualisiert weiterhin alle meine Zeilen, auch wenn die Daten nicht in der Spalte 'stripetoken' festgelegt sind. Warum passiert dies?Warum hat meine PHP "if-Anweisung" keinen Einfluss auf meine MySQL-Abfrage?

Code-Snippet:

$token_query = 'SELECT * FROM jobsubmission'; 
$token_res = mysql_query($token_query); 
$token_row = mysql_fetch_array($token_res); 


if(isset($token_row['stripetoken'])) { 
    $updqry = 'UPDATE jobsubmission SET assigned=1 WHERE ID="'.$book_ids[$jcount].'"'; 
    $update = mysql_query($updqry); 
    $bookdate = date("d-m-Y"); 
+0

Bitte beachten Sie, dass 'mysql_ *' jetzt als der 'PHP7' wegen Sicherheitsfragen ist veraltet. Es wird empfohlen, zu 'mysqli_ *' oder 'PDO' Erweiterungen zu wechseln. –

+1

@ PedroLobito Danke Pedro. Wenn du meinen vorbereitenden Absatz liest, würdest du sehen, dass ich das bestätigt habe – Jb1128

+0

Warum holst du es eigentlich nicht? while ($ token_row = mysql_fetch_array ($ token_res)) {if ($ token_row ['stripetoken'] ... –

Antwort

3

Da $token_row['stripetoken'] ist immer Satz, weil es eine Spalte in Ihrer Datenbank ist, und es wird in $token_row als Ergebnis zur Verfügung steht. Jetzt, ob hat es einen Wert oder nicht, ist eine andere Geschichte. Sie sollten stattdessen empty() verwenden (vorausgesetzt, Sie möchten nicht, dass es für falsche Werte gilt).

if(!empty($token_row['stripetoken'])) { 
+1

Schön dich wiederzusehen John ;-) –

+0

@ Fred-ii- Ich versuche eine oder zwei Fragen zu beantworten wenn ich es helfen kann. :) –

+0

Sie scheinen gut zu sein :-) –

0

Während also @JohnConde absolut sagen, dass ich richtig war notwendig, um die leere Funktion über die isset zu verwenden, legte meine Lösung an anderer Stelle. Hier ist, wie ich die Abfrage erhalten verwalten meine Spezifikationen zu arbeiten:

  • stattdessen leer zu suchen, habe ich die ‚stripetoken‘ Spalte NULL standardmäßig. Diese
  • mir erlaubt, den folgenden Code zu verwenden:

    $token_query = 'SELECT * FROM jobsubmission WHERE ID="'.$book_ids 
    [$jcount].'" and stripetoken is not null'; 
    $token_res = mysql_query($token_query); 
    $token_row = mysql_fetch_object($token_res); 
    
    if(!$token_row->stripetoken == NULL) { 
    
+0

FYI, 'empty()' macht * genau * dasselbe –

Verwandte Themen