2017-02-10 53 views
0

我想插入一列到表中,但有一個錯誤,我不知道如何解決它。我的代碼:MSSQL查詢錯誤 - 無效的列名'IdCliente'

<?php 
//connect to sql 

    // Dados do banco 
    $dbhost = "db-gadel-campinas.lexos.com.br:1500"; #Nome do host 
    $db  = "LexManager_GadelCampinas"; #Nome do banco de dados 
    $user  = "user"; #Nome do usuário 
    $password = "pass"; #Senha do usuário 

     // Dados da tabela 
    $tabela = "Clt_cadPontosFidelidade"; #Nome da tabela 
    $cliente = "IdCliente"; #id do cliente 
    $voucher = "IdPontos"; 
    $cliente2 = "9662"; 


    @mssql_connect($dbhost,$user,$password) or die("Não foi possível a conexão com o servidor!"); 
    @mssql_select_db("$db") or die("Não foi possível selecionar o banco de dados!"); 


// Input into staff database 
$query = "INSERT INTO $tabela (IdCliente, Pontos, Ativado, Data, IdPov) 
      VALUES ($cliente2, -10, 1, GETDATE(), 10)    
      "; 

$result = mssql_query($query) or die('Error querying MSSQL database'); 

//close to sql 
//mssql_close($dbc); 


echo $result['IdCliente'] . '- Código do Cliente<br />'; 
echo $result['IdPontos'] . '- Número do voucher do cliente<br />'; 
echo 'Thank you <br />'; 
echo 'Ponte Store'; 
?> 

錯誤我有:

Warning: mssql_query() [function.mssql-query]: message: Invalid column name 'IdCliente'. (severity 16) in /home/storage/c/60/21/allantoledo/public_html/NovoApp/resgatar.php on line 27

Warning: mssql_query() [function.mssql-query]: General SQL Server error: Check messages from the SQL Server (severity 16) in /home/storage/c/60/21/allantoledo/public_html/NovoApp/resgatar.php on line 27

Warning: mssql_query() [function.mssql-query]: Query failed in /home/storage/c/60/21/allantoledo/public_html/NovoApp/resgatar.php on line 27 Error querying MSSQL database

謝謝!

艾倫

+0

有一列存在於你的表名'IdCliente' –

+0

爲什麼有那麼SELECT的INSERT? –

+0

[在MySQL中何時使用單引號,雙引號和反引號](http://stackoverflow.com/questions/11321491/when-to-use-single-quotes-double-quotes-and-backticks-in-mysql )這也適用於SQL服務器。 –

回答

1

它期望一個字面值而不是列名。例如,這將是罰款(假設IDCliente不是一個數字字段):

INSERT INTO $tabela (IdCliente, $pontos, Ativado, Data, IdPov) 
VALUES ('IdCliente', -10, 1, GETDATE(), 10) 

您需要在IDCliente的實際值,而不是列的名稱來傳遞。如果你需要從其他表獲得IDCliente的值,那麼您的查詢看起來是這樣的:

INSERT INTO $tabela (IdCliente, $pontos, Ativado, Data, IdPov) 
SELECT IdCliente, -10, 1, GETDATE(), 10 
FROM SomeTableName 
+0

它工作。但現在,我無法獲得我的數組$結果的值,任何想法會發生什麼? –

+0

對不起,我知道SQL,但我並不真正瞭解PHP。然而,它看起來像你正在期待某種結果集與每個字段的值?然而,對於插入,我認爲你並不是真的會得到個別字段的結果,而只是關於查詢是否成功運行的真/假結果。如果你想要單獨的字段值,你可能需要一個選擇查詢。 –

+0

現在我明白了!謝謝! –