2013-07-15 5 views
-3

У меня возникли некоторые проблемы с этим PHP страницы, по какой-то причине, когда я запустить его запрос не выполняетсябаза данных не обновляется

<html> 
<?php 
$link = mysql_connect('localhost', 'root'); 
if (!$link) { 

    die('Could not connect: ' . mysql_error()); 

} 

    for($i = 0; $i<$_GET['count'];$i++) 
    { 
    $query ="UPDATE `TEST.table` SET `Lan_ID` = '".$_GET[$i.'LanID']. 
      "', `Switching` = '".$_GET[$i.'Switching']. 
      "',`Own` = '".$_GET[$i.'Own']. 
      "',`Division` = '".$_GET[$i.'Division']. 
      "',`Switch_Number` = '".$_GET[$i.'Switch_Number']. 
      "', `Telecom_Circuit_number` = '".$_GET [$i.'Telecom_Circuit_number']. 
      "', `Transmitter_Frequency` = '".$_GET[$i.'Trasmitter_frq']. 
      "', `Receiver_Frequency` = '".$_GET[$i.'Receiver_frq']. 
      "', `Band_width` = '".$_GET[$i.'Band_width']. 
      "', `Channel` = '".$_GET[$i.'Channel']. 
      "', `Equipment` = '".$_GET[$i.'Equipment']. 
      "', `Power` = '".$_GET[$i.'Power']. 
      "', `Line_designation` = '".$_GET[$i.'Line_designation']. 
      "', `Voltage` = '".$_GET[$i.'Voltage']. 
      "', `Phase` = '".$_GET[$i.'Phase']. 
      "', `Modulate` = '".$_GET[$i.'Modulate']. 
      "', `Terms` = '".$_GET[$i.'Terms']. 
      "', `Trap` = '".$_GET[$i.'Trap']. 
      "', `Ltunner` = '".$_GET[$i.'Ltunner']. 
      "', `Link` = '".$_GET[$i.'Link']. 
      "', `Comment` = '".$_GET[$i.'Comment']."'"; 
    $query = $query. " " . $_GET['where'.$i]; 
    mysql_query($query, $link); 

    } 
    ?> 
</html> 

Однако, когда я запустить запустить запрос на MySQL Workbench это делает выполнить и он обновляет данные, я пытался выяснить это примерно в течение часа, и я ничего не нашел, спасибо за вашу помощь

+8

Я просто хочу сказать «научиться PDO/Mysqli» и просто ... уйти – samayo

+1

http://xkcd.com/327/ – Achrome

+8

Это может быть сегодня рекорд для большинства точек ввода SQL в одной строке кода. – David

ответ

1

Пожалуйста, обратите внимание на рекомендации, предоставленные другими.

Это сильно подозреваемый:

UPDATE `TEST.table` SET 
     ^^^^^^^^^^ 

Обычно мы не используем период в качестве символа в имени таблицы.

Я подозрительно, что то, что вы хотели здесь, было на самом деле именем базы данных и именем таблицы. Разделитель периода не включается в обратные отступы, если это фактически не имя таблицы.

UPDATE `TEST`.`table` SET 
     ^^^^ ^^^^^ 

Это наиболее вероятное объяснение, я могу думать о том, почему вы не видите ни одной строки обновляются в таблице базы данных.

Самый простой способ отладить этот тип проблемы - распечатать фактическую строку, которая будет отправлена ​​в MySQL, непосредственно перед отправкой. (Или, при разработке, вместо того, чтобы послать запрос)

echo $query; 

Кроме того, лучшие практики, чтобы проверить, бросил ли ваше исполнение заявления SQL ошибку или нет, а не тянет Доктор Зло закрыл дверь и «Я просто собираюсь предположить, что все пошло на план. Что?»

Снова, пожалуйста, прислушайтесь к советам, которые другие предоставили. И остерегайтесь «Маленьких таблиц Бобби».

http://xkcd.com/327/

Смежные вопросы