2014-02-02 4 views
0

Я делаю несколько простых PHP и SQL в первый раз за довольно долгое время, но по какой-то причине не получаю его работать. Когда я предоставляю фиксированные значения, все работает отлично, но как только я заменяю их переменными, мой код терпит неудачу. Я проверил, и кажется, что переменные имеют соответствующие значения в них:База данных не обновляется при использовании PHP var

Это работает:

<?php 
    $con=mysqli_connect("localhost","xxx","xxx","xxx"); 

    if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

    if(isset($_GET['id'])){ 
     $ID = $_GET['id']; 
     $newStock = $_GET['stockcount'] - 1; 
     mysqli_query($con,'UPDATE products SET stockcount = "3" WHERE id = "1"'); 
    } 
    else 
     echo "Invalid item"; 


    mysqli_close($con); 

    header('Location: browse.php'); 
?> 

Но не так:

<?php 
    $con=mysqli_connect("localhost","xxx","xxx","xxx"); 

    if (mysqli_connect_errno()) 
     { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
     } 

    if(isset($_GET['id'])){ 
     $ID = $_GET['id']; 
     $newStock = $_GET['stockcount'] - 1; 
     mysqli_query($con,'UPDATE products SET stockcount = "'+$newStock+'" WHERE id = "'+$ID+'"'); 
    } 
    else 
     echo "Invalid item"; 


    mysqli_close($con); 

    header('Location: browse.php'); 
?> 

мне нужно что-то делать с переменными делать, или я делаю что-то еще неправильно? Как всегда, любые советы будут оценены :)

+0

https://php.net/manual/en/mysqli.quickstart.prepared-statements.php – Sirko

+0

Добавьте это: 'эхо ('UPDATE продуктов SET stockcount = "' + $ newStock +" WHERE ID = "+ $ ID + '"'); ' – user1032531

ответ

1

"+" не используется для конкатенации строки в PHP, как вы сделали

mysqli_query($con,'UPDATE products SET stockcount = "'+$newStock+'" WHERE id = "'+$ID+'"'); 

она должна быть

mysqli_query($con,'UPDATE products SET stockcount = "'.$newStock.'" WHERE id = "'.$ID.'"'); 
+0

Что такое ошибка noob: D Спасибо, человек, очень ценим это. Теперь он работает отлично! – phunder

+0

Thats ok и по ошибке только мы узнаем .. как говорится, если вы не совершаете ошибку, значит, вы никогда не пробовали, и вы пробовали до публикации на SO :) –

0
mysqli_query($con,'UPDATE products SET stockcount = "'.$newStock.'" WHERE id = "'.$ID.'"'); 

Это не javascript. Connotate with . не +. Еще лучше, просто передайте его в строке, используя двойные кавычки!

mysqli_query($con,"UPDATE products SET stockcount = '$newStock' WHERE id = '$ID'"); 
Смежные вопросы