2011-12-21 22 views
0

私は何が間違っているのか分かりませんが、私の小さな更新コードは私にエラーメッセージを出して解決する方法ができません。ここでMySQLテーブルを更新できません

は私のコードです:

<?php 

    include('dbconfig.php'); 
    $con = mysql_connect($host, $username, $password) or die(mysql_error()) ; 

    if (!$con){ 
     die('Could not connect: ' . mysql_error()); 
     } 
     mysql_select_db($db, $con); 

     function sqlEscape($string){  
      return "'".mysql_real_escape_string($string)."'"; 
     } 

     if(isset($_POST['submit'])){ 


    $q = "UPDATE records SET `name` = " + sqlEscape($_POST['name']) + ", 
    `age` = " + sqlEscape($_POST['age']) + ", 
    `location` = " + sqlEscape($_POST['location']) + ", 
    `telephone` = " + sqlEscape($_POST['telephone']) + " 

    WHERE id = $_POST[id]";     

    mysql_query($q) or die(mysql_error()); 

    }     
    ?> 

ここでは、プリントアウトしたエラーメッセージです:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0' at line 1 

誰かが私には全く間違っているつもりだ場所を確認することはできますか?

ありがとうございました。

+0

エコーあなたの '$ q'変数とは、結果を投稿してください。一見すると、値の周りに一重引用符が必要なように見えます( 'name = whatever'は' name = 'whatever''である必要があります)。 –

+0

@LoganSerman彼のsqlEscape関数はそれを処理します –

+0

良いコール、私はその機能の本体をスキップしました。それでも、 '$ q'をエコーし​​た結果を投稿してください。 –

答えて

3
$q = "UPDATE records SET `name` = " . sqlEscape($_POST['name']) . ", 
    `age` = " . sqlEscape($_POST['age']) . ", 
    `location` = " . sqlEscape($_POST['location']) . ", 
    `telephone` = " . sqlEscape($_POST['telephone']) . " 

    WHERE id = $_POST[id]"; 

"。" PHPでは文字列を連結するために "+"の代わりに使用されます。

+0

ありがとうございました。あなたの提案を試してみましょう。 –

4

数字を追加するための文字列を+演算子とともに追加しています。 PHPでは、文字列は.(ピリオド)演算子で連結されています。

$q = "UPDATE records SET `name` = " . sqlEscape(...) . ", 

など

+0

ありがとうございます、私は+を取り除き、それが何か変わるかどうか確認します。 –

関連する問題