2015-03-15 3 views
2

Я новичок в PHP, и я начал онлайн-учебник, до сих пор я работал нормально, но теперь моя база данных не возвращает запрос, хотя когда я перехожу к PHPmyadmin там, я там может заставить запрос работать нормально.Запрос в PHPMyAdmin, но не в PHP

Ниже приводится код

<?php 
ob_start(); 
//Delete Item question to admin and delete product 

include"../storescripts/connect_to_mysql.php"; 

if (isset($_GET['deleteid'])) { 
    echo 'Do you really want to delete the item with ID '.$_GET['deleteid'].'?<a href="inventory_list.php?yesdelete='.$_GET['deleteid'].'">Yes</a>|<a href="inventory_list.php">No</a>'; 
    exit(); 
    } 

if(isset($_GET['yesdelete'])){ 
    // Delete the actual product and delete picture also 
    //delete from database 
    //$id_to_delete = $_GET['yesdelete']; 
    //echo $id_to_delete; 

    $sql =mysqli_query("DELETE * FROM `products` WHERE `id`=2 LIMIT1 "); 

    //mysql_query("DELETE * FROM `products` WHERE `id`='$id_to_delete'LIMIT1") or (mysql_error()); 

    //mysqli_query("DELETE * FROM products WHERE id=`$id_to_delete`LIMIT1");// or (mysql_error()); 

    //Unlink file from server 
    $pictodelete=("../inventory_images/$id_to_delete"); 
    //echo $pictodelete; 
    if(file_exists($pictodelete)){ 
     unlink($pictodelete); 
     } 

     header("location:inventory_list.php"); 
     exit(); 

    } 


?> 

Я был бы очень признателен за помощь, мой сервер читает PHP Extension: MySQLi.

+1

'LIMIT1', вероятно, следует' 1' LIMIT, с пространством ... – vektor

+0

** Опасность **: ** Вы уязвимы для атак [SQL-инъекции ] (http://bobby-tables.com/) **, что вам нужно [защищать] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php) из вас. ** Опасность **: этот код [уязвим для XSS] (https://www.owasp.org/index.php/Cross-site_Scripting_ (XSS)). Пользовательский ввод требует экранирования перед вставкой в ​​HTML-документ !. – Quentin

ответ

0

Пространство после лимита.

Вы не указали соединение в функции mysqli_query().

например:

<?php 
$con=mysqli_connect("localhost","my_user","my_password","my_db"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

// Perform queries 
mysqli_query($con,"SELECT * FROM Persons"); 
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age) 
VALUES ('Glenn','Quagmire',33)"); 

mysqli_close($con); 
?> 

В вашем случае

$sql =mysqli_query($connectionname,"DELETE * FROM `products` WHERE `id`=2 LIMIT 1 "); 
+0

Вам не нужен LIMIT, если это уникальный идентификатор. –

1

я не знаю, что находится внутри connect_to_mysql.php но сначала есть процедура подключения к базе данных, который я предполагаю, что вы сделали правильно, он состоит из кода, который выглядит чем-то как и при настройках по умолчанию

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = ""; 
$databasename="abc"; 

// Create connection 
$conn = mysqli_connect($servername, $username, $password,$databasename); 

// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
echo "Connected successfully"; 
?> 

второй вещи я вижу в вашем коде

$sql =mysqli_query("DELETE * FROM `products` WHERE `id`=2 LIMIT1 "); 

содержит синтаксические ошибки, он должен быть

$sql =mysqli_query($conn,"DELETE FROM `products` WHERE `id`=2 LIMIT 1 "); 
0

Ошибки при запросе: $ SQL = mysqli_query ("DELETE * FROM products WHERE id = 2 LIMIT1");

  • заменить DELETE * FROM продуктов с DELETE FROM продуктов. DELETE удалить строку из таблицы.
  • Процедура как mysqli_query занимает по меньшей мере два аргумента
    1. Ссылка идентификатор, возвращаемый форма mysqli_connect
    2. Строка запроса

И вы не указали ссылку как первые аргументы, которые вы должны использовать возвращенную ссылку в к mysqi_query.

$con = mysqli_connect('localhost','root','password','db'); 
$sql =mysqli_query($con,"DELETE FROM `products` WHERE `id`=2 LIMIT1 "); 

Эта ссылка поможет вам связать mysqli_query

Смежные вопросы