と私は、次の更新がありますPHP MySQLの挿入/更新クエリは、trueを返しますが、エラー
$conn->query_cust("update cms_users set last_login_date = now() where id = " . $_SESSION['USER_INFO']->id);
を私はいくつかの他の形式で同じ機能を使用するため、問題がquery_cust
機能していないと確信しています彼らはうまくいく。とにかく、ここで(デバッグ情報のための2つvar_dumpsとの)定義は次のとおりです。
function query_cust($s='',$rows=false,$organize=true) {
var_dump($s);
if (!$q=mysql_query($s,$this->con)) return false;
if ($rows!==false) $rows = intval($rows);
$rez=array(); $count=0;
$type = $organize ? MYSQL_NUM : MYSQL_ASSOC;
var_dump($q);
while (($rows===false || $count<$rows) && $line=mysql_fetch_array($q,$type)) {
if ($organize) {
foreach ($line as $field_id => $value) {
$table = mysql_field_table($q, $field_id);
if ($table==='') $table=0;
$field = mysql_field_name($q,$field_id);
$rez[$count][$table][$field]=$value;
}
} else {
$rez[$count] = $line;
}
++$count;
}
if (!mysql_free_result($q)) return false;
return $rez;
}
実行すると、私は言って警告メッセージが出ます:
string(57) "update cms_users set last_login_date = now() where id = 1" bool(true)
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/content/XX/XXXXXXX/html/core/mysql.php on line 26
何私を心配することは、それはブール(真を返すということですが)しかし、(私が間違っていれば私を修正してください)無視できない警告ではありません!更新クエリを手動でたとえばPHPmyAdminにコピーすると、(テーブルの更新/挿入の権限がある)動作します。
同じ問題を抱えている人のために、いくつかの情報があります。ローカルでコードを実行すると問題は発生しません( 'error_reporting = E_ALL'を有効にしても)。しかし、テスト環境(Godaddyのホスティング)
PS:私はPHP(私はJAVAの世界)からそうではありませんので、あなたの答えと私の愚かなサブ質問を掲示している間に慈悲を持ってください:)ありがとう。
それはtrueを返すべきではありません。リソースを返す必要があります。 – TimWolla
本当ですか? as on http://php.net/manual/en/function.mysql-query.php "INSERT、UPDATE、DELETE、DROPなどの他のタイプのSQL文の場合、mysql_query()は成功した場合はTRUE、失敗した場合はTRUEを返しますエラー。" – AlenBer
おっと、私の悪い、申し訳ありません:) – TimWolla