2

参照用のSQL Fiddleとテーブルのスキーマ

私は WebClient を使用して、リモート データベース (MySql v5.5) の読み取りと書き込みを行っています。このクエリを使用してテーブルに書き込もうとしています:

 string query "INSERT INTO ProgettoGruppi (`id`, `progettoID`, `gruppoID`, `orePreviste`, `oreAttuali`, `stato`) VALUES (NULL, 1, 2, 0, 0, 'test3')"

これは私のDBからの答えです:

「データベース アクセスに失敗しました: SQL 構文にエラーがあります。1 行目の '\'test3\')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」

「test3」を NULL に置き換えると、正常に動作します。

文字列に「test3」を書き込む正しい形式はどれですか?

これは私が使用しているコードです:

string PASSWORD_STRING = "&password=xxx";
string USER_STRING = "?user=xxx";
string query1 = "INSERT INTO ProgettoGruppi (`id`, `progettoID`, `gruppoID`, `orePreviste`, `oreAttuali`, `stato`) VALUES (NULL, 1, 2, 0, 0, 'test3')";
string query2 = @"&query=" + query1;
byte[] responseArray = threadClient.DownloadData(@"http://www.xxxxxx.it/getDataFromMySql.php" + USER_STRING + PASSWORD_STRING + query2);

これは使用される PHP コードです。

$c_query = $_GET['query'];
$tSql = $c_query;
$result = mysql_query($tSql)
if (!$result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
for ($j = 0 ; $j < $rows ; ++$j)
{
    $Filed[$j] = mysql_fetch_row($result);
}
$json_string = json_encode($Filed); 
echo $json_string ;
4

2 に答える 2

0

私はphpコードで問題を見つけました(@steveがどのように想定したか)

この文字列を c# から送信します。

string query "INSERT INTO ProgettoGruppi (`id`, `progettoID`, `gruppoID`, `orePreviste`, `oreAttuali`, `stato`) VALUES (NULL, 1, 2, 0, 0, 'test3')"

PHPファイルで、この文字列を受け取ります

"INSERT INTO ProgettoGruppi (`id`, `progettoID`, `gruppoID`, `orePreviste`, `oreAttuali`, `stato`) VALUES (NULL, 1, 2, 0, 0, \'test3\')"

PHP コードでstripslashes()を使用して、スラッシュを削除しました。

助けてくれてありがとう。

于 2013-09-30T17:32:28.087 に答える
0

フィールドが NULL 値を受け入れ、すべての nvarchar フィールドに '' が必要であることを確認します。'test3' の場合と同様に、'1'、'2' などを設定する必要があるかもしれません.nvarchar フィールドを使用している場合

それ以外の場合は、必要がなければ「id」フィールドを削除し、NULL 値を削除します

于 2013-09-30T13:52:58.837 に答える