php更新mysql语句不工作但相同的查询通过phpmyadmin sql菜单工作

时间:2013-02-08 01:23:57

标签: php mysql phpmyadmin sql-update

我正在运行一个脚本来更新MySQL表,我一直在回复update语句,以帮助解决更新语句无法正常工作的原因。当我将mysql更新的回显查询复制并粘贴到phpmyadmin的SQL菜单中时,它可以正常工作,但是当我运行脚本时,更新查询不会执行。我知道我已成功连接到数据库。有谁知道为什么更新语句的回显版本复制并粘贴到phpmyadmin的sql选项卡中会成功执行,而不是应该在echoed语句之前执行该行的实际查询?这是我的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>

3 个答案:

答案 0 :(得分:0)

在没有看到错误的情况下很难知道问题是什么,但是,根据我个人的经验,当我在UPDATE查询中发生这种情况时,总是因为我用引号包装了ID。

希望这有帮助。

答案 1 :(得分:0)

问题可能与报价有关。虽然键入单引号是'sumthng'但在执行更新查询时,我们需要sumthng。我希望这有效。我遇到了同样的问题,它是使用直接从phpmyadmi复制的引号解决的。

答案 2 :(得分:-1)

确保phpmyAdmin与php代码是同一个数据库,因此&#34; tunemashercom.ipagemysql.com&#34;

检查以确保使用phpmyAdmin的数据库(运行echo查询)与使用PHP代码连接的数据库相同。

例如,您从本地计算机连接到phpmyAdmin,并且您的php代码正在托管服务器上连接到您的数据库。