4

やあ、

私は持っています

クエリが空でした

データ更新時のエラー。

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1"))
{
   $updateSQL = sprintf("UPDATE client,release SET client.`client_name`=%s, release.`client_name`=%s WHERE client.`client_id`=%s AND release.`client_id`=%s", GetSQLValueString($_POST['newcust'], "text"), GetSQLValueString($_POST['select'], "int"));
   mysql_select_db($database_trackntrace, $trackntrace);
   $Result1 = mysql_query($updateSQL, $trackntrace) or die(mysql_error());
}

クエリに問題があると思います。問題の場所を特定してください。

敬具

4

2 に答える 2

4

問題は sprintf 関数にあります。sprintf に 4 つの文字列を渡すことを伝えますが、渡すのは 2 つだけです。

渡すパラメーターは 2 つだけで、必要なパラメーターは 4 つであるため、false が返されます。

コードの上にこれを追加してみてください:

error_reporting(E_ALL);
ini_set('display_errors', '1');

これは、上記の設定で発生するはずのエラーです。

Warning: sprintf() [<a href='function.sprintf'>function.sprintf</a>]: Too few arguments

この問題を解決するために変更したいもの:

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1"))
{
   $updateSQL = sprintf("UPDATE client,release SET client.`client_name`=%s, release.`client_name`=%s WHERE client.`client_id`=%s AND release.`client_id`=%s", GetSQLValueString($_POST['newcust'], "text"), GetSQLValueString($_POST['newcust'], "text"), GetSQLValueString($_POST['select'], "int"), GetSQLValueString($_POST['select'], "int"));
   mysql_select_db($database_trackntrace, $trackntrace);
   $Result1 = mysql_query($updateSQL, $trackntrace) or die(mysql_error());
}
于 2013-09-18T11:52:47.703 に答える
2

リリースは予約語です。バッククォートを使用してください。

UPDATE client,`release` SET client.`client_name`=%s, `release`.`client_name`=%s 
WHERE client.`client_id`=%s AND `release`.`client_id`=%s",     GetSQLValueString($_POST['newcust'], "text"), GetSQLValueString($_POST['select'], "int"));

http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-5.html

于 2013-09-18T11:44:17.870 に答える