2015-11-27 5 views
1

Я пытаюсь обновить несколько таблиц mysql, хотя ошибки нет, но изменения не отражаются в базе данных mysql. Пожалуйста, позвольте мне, если мне нужно будет использовать JOIN, чтобы поместить обновление запроса в одну строку.Обновление нескольких таблиц в mysql

ли мне еще нужен

mysqli_query($conn, $sqlCD) or die(mysqli_error($conn)); in the below ? 

    $pCDTitle = filter_has_var(INPUT_GET, 'CDTitle') ? $_GET['CDTitle']: null;   // store all parameter in variable 
    $pCDPubName = filter_has_var(INPUT_GET, 'CDPub') ? $_GET['CDPub']: null; 
    $pCDYear = filter_has_var(INPUT_GET, 'CDYear') ? $_GET['CDYear']: null; 
    $pCDCategory = filter_has_var(INPUT_GET, 'CDCat') ? $_GET['CDCat']: null;   
    $pCDPrice = filter_has_var(INPUT_GET, 'CDPrice') ? $_GET['CDPrice']: null; 
    $pCDID = filter_has_var(INPUT_GET, 'CDID') ? $_GET['CDID']: null; 
    $pCDPubID = filter_has_var(INPUT_GET, 'pubID') ? $_GET['pubID']: null;  

$sqlCD = mysql_query("UPDATE nmc_cd SET CDTitle='$pCDTitle', CDYear='$pCDYear', CDPrice='$pCDPrice'"); 
$sqlCD2 = mysql_query("UPDATE nmc_category SET catDesc='$pCDCategory'"); 
$sqlCD3 = mysql_query("UPDATE nmc_publisher SET pubName='$pCDPubName'"); 

//mysqli_query($conn, $sqlCD) or die(mysqli_error($conn)); 
//mysqli_query($conn, $sqlCD2) or die(mysqli_error($conn)); 
//mysqli_query($conn, $sqlCD3) or die(mysqli_error($conn)); 
mysqli_close($conn); 
+2

смешивание mysql и mysqli !! – Saty

ответ

3

Вы должны изменить запрос:

$sqlCD = mysql_query("UPDATE nmc_cd SET CDTitle=$pCDTitle, CDYear=$pCDYear, CDPrice=$pCDPrice"); 
$sqlCD2 = mysql_query("UPDATE nmc_category SET catDesc=$pCDCategory"); 
$sqlCD3 = mysql_query("UPDATE nmc_publisher SET pubName=$pCDPubName"); 

Причина: Если строка в двойных qoutes «» имеет переменный PHP как $ тест его значение автоматически вводится в строку, но если вы используете одиночный qoute '', то его имя переменной печатается. Например:

$test = 5; 
echo "The number is $test"; //The number is 5 prints 
echo 'The number is $test'; //The number is $test prints 
1

mysqli_query($conn, $sqlCD) or die(mysqli_error($conn)); in the below ? 
 

 
    $pCDTitle = filter_has_var(INPUT_GET, 'CDTitle') ? $_GET['CDTitle']: null;   // store all parameter in variable 
 
    $pCDPubName = filter_has_var(INPUT_GET, 'CDPub') ? $_GET['CDPub']: null; 
 
    $pCDYear = filter_has_var(INPUT_GET, 'CDYear') ? $_GET['CDYear']: null; 
 
    $pCDCategory = filter_has_var(INPUT_GET, 'CDCat') ? $_GET['CDCat']: null;   
 
    $pCDPrice = filter_has_var(INPUT_GET, 'CDPrice') ? $_GET['CDPrice']: null; 
 
    $pCDID = filter_has_var(INPUT_GET, 'CDID') ? $_GET['CDID']: null; 
 
    $pCDPubID = filter_has_var(INPUT_GET, 'pubID') ? $_GET['pubID']: null;  
 

 
$sqlCD = mysqli_query($conn,"UPDATE nmc_cd SET CDTitle='$pCDTitle', CDYear='$pCDYear', CDPrice='$pCDPrice'") or die(mysqli_error($conn)); 
 
$sqlCD2 = mysqli_query($conn,"UPDATE nmc_category SET catDesc='$pCDCategory'") or die(mysqli_error($conn)); 
 
$sqlCD3 = mysqli_query($conn,"UPDATE nmc_publisher SET pubName='$pCDPubName'") or die(mysqli_error($conn)); 
 
mysqli_close($conn);

попробовать это.

+0

Спасибо, но поймите, что он заменит всю базу данных. Я думаю, что ему не хватает идентификатора строки и направляет его только на обновление выбранной строки ... –

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