Как мне ввести значения в таблицу MySQL, используя php, когда есть ограничение? - PullRequest
1 голос
/ 29 февраля 2012

Я бы хотел вставить данные в таблицу только тогда, когда определенные значения в строке этой таблицы (sessionid) соответствуют другой переменной. Я изо всех сил пытаюсь составить заявление INSERT. Подход, который я использую: извлечь все строки в таблице, которые соответствуют критериям (retailer = $ retailer), а затем выполнить итерацию по этим строкам, вводя параметры переменной в таблицу sessionid.

$retailer = $_GET['retailer'];
$options = $_GET['options'];
$session = session_id();

//mysql connection stuff goes here

$query = "
SELECT *
FROM `sessionid`
WHERE `retailer` = '$retailer'
";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
      mysql_query("INSERT INTO sessionid (options) VALUES('$options')");
    }

Правильный ли для меня синтаксис? Спасибо!

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Возможно, вы вместо этого ищете команду UPDATE?

UPDATE   sessionid
SET      options = $options
WHERE    retailer = $retailer

Кстати, я бы хотел использовать PDO , так как это болеебезопаснее, чем нажатие $_GET значений в базе данных.

$db = new PDO('mysql:host=localhost;dbname=MYDATABASE', 'username', 'password');

$db->prepare('UPDATE sessionid SET options = ? WHERE retailer = ?');

$db->execute(array($options, $retailer));
0 голосов
/ 29 февраля 2012

Вы можете использовать предложение WHERE в MySQL для этого.Если вы изменяете существующую строку, вам действительно нужно ОБНОВЛЕНИЕ, а не ВСТАВКА.

UPDATE sessionid SET options=$options where retailer = $retailer
...