0

MySQL テーブルを更新するスクリプトを実行しています。update ステートメントが機能しない理由をトラブルシューティングするために、update ステートメントをエコーし​​ています。エコーされた mysql 更新のクエリをコピーして phpmyadmin の SQL メニューに貼り付けると、完全に機能しますが、スクリプトを実行すると更新クエリが実行されません。データベースへの接続に成功したことはわかっています。updateステートメントのコピーとphpmyadminのsqlタブへの貼り付けのエコーされたバージョンが正常に実行される理由を誰かが知っていますが、エコーされたステートメントの前の行で実行されるはずの実際のクエリはありませんか? これが私のphpです:

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
</head>
<body>
<?php
$user = 'tunemashercom';
$pass = 'password';
$host = 'tunemashercom.ipagemysql.com';
$db_name = 'user_library';
@ $db = mysqli_connect($host, $user, $pass, $db_name);  

if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database.';
    exit;
}

$oldsongs = $_POST['oldsongs'];
$newsongs = $_POST['newsongs'];
$count = count($newsongs);
$count2 = count($oldsongs);
echo "COUNT 1: ".$count." - COUNT 2: ".$count2."<br />";
for($i=0;$i<=$count;$i++){
    $newtitle = $newsongs[$i]["song"];
    echo $newtitle." - ";
    if($newtitle == ""){
        echo "NO NEW TAGS<br />";
    }
    else{
        $title = $oldsongs[$i]["title"];
        echo $title."<br />";
        $artist = $oldsongs[$i]["artist"];
        $album = $oldsongs[$i]["album"];
        $newartist = $newsongs[$i]["artist"];
        $newalbum = $newsongs[$i]["album"];
        $mbid = $newsongs[$i]["mbid"];          
        $insert = "UPDATE collection SET song='".$newtitle."', artist='".$newartist."', album='".$newalbum."', gille_id='".$mbid."' WHERE song='".$title."' AND artist='".$artist."' AND album='".$album."'";
        $results = $db->query($insert);         
        echo $insert."<br />";      
    }
}

mysqli_close($db);

?>
</body>
</html>
4

3 に答える 3

0

エラーが表示されない限り、問題が何であるかを知ることは困難ですが、UPDATEクエリでそれが発生したときの個人的な経験から、IDを引用符で囲んだことが常に原因でした。

うまくいけば、それがお役に立てば幸いです。

于 2013-02-08T01:37:03.467 に答える
-1

phpmyAdmin が php コードと同じデータベースであることを確認してください。「tunemashercom.ipagemysql.com」

phpmyAdmin を使用して (echo クエリを実行している) データベースが、PHP コードで接続しているデータベースと同じであることを確認してください。

たとえば、ローカル マシンから phpmyAdmin に接続していて、php コードがホスティング サーバーのデータベースに接続しているとします。

于 2015-11-14T12:03:20.073 に答える