检查数据库中是否存在值


Check exist value in database

我的表艺术家:artistID,name,genreID,avatar,short decs,view,vnmartist。艺术家结构表我创建upload.php来上传mp3,并插入关于歌曲的信息,列为:name,artistID,genreID。

因为歌曲的名字和歌手,流派是由用户输入的。我想查一下艺术家的名字。如果name为null->将name插入数据库,则获取artistID并插入数据库。如果名称不为空->获取artistID并将数据插入表artist。

我的PHP代码如下:

$artist = $_POST['artist-name'];
$link = mysql_connect("localhost", "root", "");
mysql_select_db("vnmtest", $link);
$result = mysql_query("SELECT * FROM artist where name='".$artist."'",$link);
if($num_rows = mysql_num_rows($result) == 0)
echo "data is null";
else echo "data okay";

当测试上传1个文件时,我输入艺术家名称:"Nhật Trường",这类似于艺术家名字中的数据,但程序仍然回显"数据为空"

我的艺术家表:

[![我的艺术家表][2]][2]

我的完整代码如下:

        if (!empty($_FILES["audiofile"])) {
        $myFile = $_FILES["audiofile"];
        if ($myFile["error"] !== UPLOAD_ERR_OK) {
            echo "<p>An error occurred.</p>";
            exit;
        }
        // ensure a safe filename
        $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);
        // don't overwrite an existing file
        $i = 0;
        $parts = pathinfo($name);
        while (file_exists(UPLOAD_DIR . $name)) {
            $i++;
            $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
        }
        // preserve file from temporary directory
        $success = move_uploaded_file($myFile["tmp_name"],
            UPLOAD_DIR . $name);
        if (!$success) { 
            echo "<p>Unable to save file.</p>";
            exit;
        }
        // set proper permissions on the new file
        chmod(UPLOAD_DIR . $name, 0644);
        $name = $_POST['song-name'];
        $artist = $_POST['artist-name'];
        $genreID = $_POST['genreID']; 
        // kiểm tra artist tồn tại hay chưa
        $artist = $_POST['artist-name'];
        print_r($_POST['artist-name']);
        //$sql = "SELECT * FROM artist where name='".$artist."'";
        //$result = $conn->query($sql);


            $link = mysql_connect("localhost", "root", "");
            mysql_select_db("vnmtest", $link);
            $result = mysql_query("SELECT * FROM artist where name='".$artist."'",$link);
            if($num_rows = mysql_num_rows($result) == 0)
            echo "data is null";
            else echo "data okay";

        // output data of each row
        // $artist_select = $conn->query ("SELECT EXISTS(select * from artist where name = '".$artist."') ");
    }

?>

我认为可能有三种可能性:

1) 字符集错误:尝试在页面中设置适当的字符集(例如:用标题设置:$mysqli->query("SET CHARACTER SET utf8")

2) 查询错误:尝试在中更改查询

$result = mysql_query("SELECT count(*) num FROM artist where name='".$artist."'",$link);

并修改if语句以检查"num"字段是否>0

3) "if"错误:尝试在中更改if(离开当前查询)

if(mysql_num_rows($result) == 0)