2013-04-29 1 views
0

Я использую следующий скрипт для очистки спам-ссылок из моей гостевой книги, если я копирую и прошу запрос в phpmyadmin, он работает нормально, если я запустил следующий сценарий в моем браузере, сохраненном как php-файл, я получаю сообщение об ошибке «Не удалось выполнить запрос:». Я посмотрел на него и не мог понять, что сделал не так, может ли кто-нибудь увидеть что-нибудь очевидное, явное пропущенное? ».Удалить строки mysql, если содержит определенный контент, не работает

<?php 
    // Checks to see if the key value is set 
    if (isset($_GET['key'])) { 
     $key = $_GET['key']; 
    } 
    // If the key value isnt set give it a value of nothing 
    else 
    {$key = '';} 

    // Checks to see if the key value is valid to authenticate the user 
    if ($key == 'keycode'){ 
    // If the key value is correct the user is granted access 
    $con = mysql_connect("localhost","user","password"); 
    if (!$con) 
     { 
     die('Could not connect: ' . mysql_error()); 
     } 

    // Select mysql db 
    mysql_select_db("towerroa_TRA", $con); 
    mysqli_query($con, "DELETE FROM `itsnb_phocaguestbook_items` WHERE `content` LIKE '%<a%'")or die ("Couldn't execute query: ".mysqli_error()); 

    echo 'Spam Purged !'; 
    } 
    else { 
    // Denies the user access if the key value isnt correct 
    echo '<h1>Access Denied !</h1>';} 
+0

И что ошибка в вашем не смогло выполнить запрос? Также вы используете устаревшую функцию 'mysql_' всюду, за исключением части' mysqli_query'. Измените все на 'mysql_ *' запросы или 'mysqli_ *' запросы. «Mysqli_» очень рекомендуется! –

+0

Ошибок нет, достаточно, чтобы он не выполнил запрос. –

+0

Вместо $ con = mysql_connect («localhost», «user», «password»); TRY $ con = mysql_connect ("localhost", "user", "password") или die (mysql_error()); - Это дает вам какую-либо ошибку? Является ли mysqli_query в вашем коде, предназначенном для mysql_query? – bestprogrammerintheworld

ответ

2

Проблема вы путаете mysql_ и mysqli_. Попробуйте выполнить следующее:

mysqli_connect("localhost","user","password"); 
mysqli_select_db("towerroa_TRA", $con); 
mysqli_query($con, "DELETE FROM `itsnb_phocaguestbook_items` WHERE `content` LIKE '%<a%'")or die ("Couldn't execute query: ".mysqli_error()); 

Вместо;

mysql_connect("localhost","user","password"); 
mysql_select_db("towerroa_TRA", $con); 
mysqli_query($con, "DELETE FROM `itsnb_phocaguestbook_items` WHERE `content` LIKE '%<a%'")or die ("Couldn't execute query: ".mysqli_error()); 
+0

Iv попробовал это и все еще получил сообщение об ошибке «Не удалось выполнить запрос:» :-( –

+0

У вас ** triple ** проверено все имена БД, имена таблиц и пользователя/пароль и т. Д. И какая часть сообщение об ошибке после ':'? – Dom

1

Заменить все mysql_* функцию с mysqli_*

+0

Iv попробовал это и до сих пор получает сообщение об ошибке «Не удалось выполнить запрос:» :-( –

2
mysqli_select_db("towerroa_TRA", $con); 

должен быть

mysqli_select_db($con,"towerroa_TRA"); 
1

попробовать этот

<?php 
// Checks to see if the key value is set 
if (isset($_GET['key'])) { 
    $key = $_GET['key']; 
} 
// If the key value isnt set give it a value of nothing 
else 
{$key = '';} 

// Checks to see if the key value is valid to authenticate the user 
if ($key == 'keycode'){ 
// If the key value is correct the user is granted access 
$con = mysql_connect("localhost","user","password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

// Select mysql db 
mysql_select_db("towerroa_TRA", $con); 
mysql_query($con, "DELETE FROM `itsnb_phocaguestbook_items` WHERE `content` LIKE '%<a%'")or die ("Couldn't execute query: ".mysql_error()); 

echo 'Spam Purged !'; 
} 
else { 
// Denies the user access if the key value isnt correct 
echo '<h1>Access Denied !</h1>';} 
Смежные вопросы