2

有史以来第一个stackoverflow问题!

功能:在允许插入之前检查并查看数据是否存在 - 尝试使其不区分大小写并尽可能开放,因为我试图避免重复的标题仅适用于特定的艺术家 ID(如下所述)

表行结构如下

  • id (auto_increment)
  • 艺术家(仅分配给该艺术家的特定 ID 号)
  • 标题(我们正在努力确保我们不会只为这位艺术家获得重复

ISSUE :没有从数据库中获取所需的数据或后定义错误,如果语句 = 不知道到底是什么问题,可能是错误的

$_POST['title']; 从用户输入传递

            if (isset($submit)) {
                $date = date("Ymd");
                $cleanTitle =  $_POST['title'];
                $querytitle = mysql_real_escape_string($_POST['title']);
                $queryalbum = mysql_real_escape_string($_POST['album']);

                // Check to see if Title exist for specfic Artist
                $checkTitle = mysql_query("SELECT * from lyrics WHERE artist = '$artist'");
                if (!$checkTitle) {
                    die('Query Failed');
                } 
                if ($checkTitle == $cleanTitle)  {
// do whatever
}
                print_r($checkTitle); // the data returned from the query

更新: INSERT IGNORE 不起作用,因为我通过 $artist 插入数据,需要先检查该艺术家是否存在标题。或者我可能是错的。我不确定如何去做 $artist 是在代码中定义得更高的特定 ID 号

4

2 回答 2

0

您的代码不正确,但这应该可以:

if (isset($submit)) {
    $date = date("Ymd");
    $cleanTitle =  $_POST['title'];
    $querytitle = mysql_real_escape_string($_POST['title']);
    $queryalbum = mysql_real_escape_string($_POST['album']);
    // !!! $artist is not actually set anywhere here..
    $checkTitle = mysql_query("SELECT * from lyrics WHERE artist = '$artist'");
    if (!$checkTitle) {
        die('Query Failed');
    } 
    /* now that you have run the query, you need to get the result: */
    // (This is assuming your query only returns one result)//
    $result = mysql_fetch_array($checkTitle);
    // now check the value for 'title'
    if ($result['title'] == $cleanTitle)  {
        // do whatever
    }
    print_r($result); // the data returned from the query
}

您正在运行查询,但没有得到查询结果。你mysql_fetch_array()用来得到结果。要获取多个条目的结果,可以使用以下命令:

// will print the 'title' for each results
while ($row = mysql_fetch_array($checkTitle)) {
    echo $row['title'];
}

现在说了这么多,你应该知道 mysql_* 正在经历一个弃用过程,应该用 mysqli 或 PDO 替换。请阅读以下内容:

请不要mysql_*在新代码中使用函数。它们不再被维护,并且 已经开始弃用过程。看到 红框了吗?改为了解准备好的语句,并使用 PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2012-11-07T03:42:45.513 回答
0

这是检查该标题是否有任何帖子的非常简单的代码(您可能已经知道,首先,该文件需要 wp-blog-header.php)。

$title = 'mytitlee';

global $wpdb;
$id_ofpost_name = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = $title");
$id_ofpost_title = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_title = $title");
if ($id_ofpost_name || $id_ofpost_title) {echo 'Exists, here is the id:'.$id_ofpost_title.$id_ofpost_name;} 
else {echo 'post wasnt found';}
于 2013-04-10T12:33:47.830 回答