第一个stackoverflow问题一直在讨论!
功能:在允许INSERT之前检查并查看数据是否存在 - 尝试使其不具有案例感并且尽可能开放,因为标题我试图避免重复仅用于一个特定的艺术家(在下面解释)
表行结构如下
问题:未获得数据库中所需的数据或发布后定义的错误,if语句=未知确切的问题可能是错误的
$ _ POST [ '标题'];从用户输入传递
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号
答案 0 :(得分: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代替。请阅读以下内容:
Please, don't use
mysql_*
functions in new code。它们不再被维护了 deprecation process已经开始了。见 red box?请转而了解prepared statements,然后使用 PDO或MySQLi - this article会帮助您确定哪个。如果你选择 PDO,here is a good tutorial。
答案 1 :(得分: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';}