PHP использует DELETE FROM для удаления строки в MySQL - PullRequest
0 голосов
/ 24 февраля 2012

Ниже приведен код, который я пытался использовать для удаления строки из моей базы данных mysql.Я искал через форум, и я до сих пор не нашел проблему.Я знаю, что мое соединение работает правильно, так как я смог без проблем использовать команду INSERT INTO.Я уверен, что совершенно очевидно, что я новичок в этом, ищу простое решение.

<?php

$_POST[title];
$jimmy = $_POST[title];
echo $jimmy;    ## this echo is here to make sure I was getting form data sent over      correctly
include("dogs.inc");
$cxn = mysqli_connect($host,$user,$passwd,$dbname)
         or die("Couldn't connect to server");

$sql = "DELETE FROM ashly3 WHERE title = '$jimmy' " ;
mysqli_query( $cxn, $sql );

include("ashly.php");


?>

Ответы [ 5 ]

1 голос
/ 24 февраля 2012

Я думаю, что ваша ошибка $ _POST [title] должна быть $ _POST ['title'], в любом случае попробуйте этот код.

<?php
error_reporting(E_ALL);
//$_POST[title];
$jimmy = $_POST['title'];
echo $jimmy;    ## this echo is here to make sure I was getting form data sent over      correctly
include("dogs.inc");
$cxn = mysqli_connect($host,$user,$passwd,$dbname)
         or die("Couldn't connect to server");

$sql = 'DELETE FROM `ashly3` WHERE title = \''.mysqli_real_escape_string($cxn,$jimmy).'\'';

$retval=mysqli_query( $cxn, $sql );
echo "retval:";var_dump($retval);
if($retval===false)
{
echo "mysqli_error:";var_dump(mysqli_error($cxn));
}
include("ashly.php");


?>
1 голос
/ 24 февраля 2012

Вы действительно должны рассмотреть возможность использования PDO для баз данных.В любом случае, для вашего решения, чтобы определить ошибку: Попробуйте это:mysqli_query ($ cxn, $ sql) или die (mysqli_error ());

Также, пожалуйста, используйте mysqli_real_escape_string () вокруг ввода пользователя:)

1 голос
/ 24 февраля 2012
$jimmy = $_POST[title];

Должно быть

$jimmy = $_POST['title']; 

Но это не причина, по которой это не работает, PHP должен исправить эту ошибку с предупреждением.

Также вставка текста$_POST без экранирования может вызвать проблемы с инъекцией SQL.Представьте, что пользователь вставляет hello' OR 1 в текстовое поле заголовка.Используйте http://phptutorial.info/?mysqli.real-escape-string

0 голосов
/ 24 февраля 2012

Одним из способов может быть это, это работает для меня

<?php
require '../access/dbaccess.php';
$dtlname=  $_POST['remove_dtlname'];
mysql_query("delete from `sample_tbl` where `dtl_name`='$dtlname'");
?>

Где dbaccess.php -

<?php
$link = mysql_connect('<your server>', '<username>', '<password>');
        if (!$link)
             die('Could not connect: ' . mysql_error());
mysql_select_db('btp');
?>
0 голосов
/ 24 февраля 2012

Попробуйте вывести переменную из строки $ SQL:

$sql = "DELETE FROM ashly3 WHERE title = '".$jimmy."' " ;
...