Обновление базы данных SQL с использованием jQuery Ajax и PHP - PullRequest
3 голосов
/ 07 марта 2011

Поэтому я пытаюсь использовать ajax для обновления значения в моей базе данных sql, захватив ссылку, по которой щелкнули, и найдя эту ссылку в базе данных.Я не уверен, почему это не работает: \

$('.visit').click( function() {
var thisLink = $(this).attr('href'); 
$.post("visit.php", { link: thisLink});
});

<?php
$link = $_POST['link'];
mysql_query("UPDATE items SET visited = 1 WHERE link = $link");
include("print.php");
?>

Ответы [ 3 ]

2 голосов
/ 07 марта 2011

Чтобы предотвратить внедрение SQL, используйте что-то вроде следующего (набрано из памяти ... двойная проверка).

<?php
    $db = new PDO('connection string', 'username', 'password');

    $query = "UPDATE items SET visited=1 WHERE link=:link";

    $stmt = $db->prepare($query);
    $stmt->execute(array(':link' => $link));
?>

Bob

2 голосов
/ 07 марта 2011
    $('.visit').click( function() {
         var thisLink = $(this).attr('href'); 
         $.post("visit.php", { link: thisLink});
    });

    <?php
         $link = $_POST['link'];
         mysql_query("UPDATE items SET visited = '1' WHERE link = '".mysql_real_escape_string($link)."'");
         include("print.php");
    ?>

используйте одинарные кавычки вокруг параметров SET и WHERE.Кроме того, mysql_escape_real_string вводит в базу данных для SQL-инъекции

1 голос
/ 07 марта 2011
 <?php 
  $link = $_POST['link']; 
  mysql_query("UPDATE items SET visited = 1 WHERE link = '$link'"); 
  include("print.php"); // what print.php does ?
 ?> 

ставьте кавычки вокруг $ link

сравнивайте $ link со значением в поле базы данных - оно должно точно совпадать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...