Ben bir veritabanında bazı değerleri güncelleştirmek çalışıyorum ve bir sorguyu yürüttükten sonra, veritabanındaki değerleri güncelleme olmayacak, sadece boş bir değer ile değiştirin.
Bu benim php kodu:
$sql = 'UPDATE ' . $tbl_name . ' SET `Name` = \'' . $name .'\', `Store` = \'apples\', `URL` = \'apples\', `SKU` = \'apples\', `Price` = \'apples\', `Location` = \'apples\' WHERE CONVERT(`crisss1205_me_com`.`ID` USING utf8) = \'1\' LIMIT 1;';
ve herhangi bir hata döndürmez. Değişken $name bir $ _POST geliyor
Ben kullanarak sorgu yazdırmak ise echo $sql;
bu gibi görünüyor:
UPDATE crisss1205_me_com SET
Name
= 'MerhabaDünya',Store
= 'elma',URL
= 'elma,SKU
=' elma 'Price
= 'elma',Location
= 'elma' NEREDE CONVERT (crisss1205_me_com
.ID
KULLANARAK utf8) = '1 'LIMIT 1;
Ancak "Ad" sütununun altında veritabanındaki boş bir alanı gösterir.
Ben yalnız sorgu bırakın ama değişim $name = $_POST['name'];
eğer $name = "HelloWorld";
bu veritabanı cezası güncelleyecektir.
Ne bir "POST" den görünmüyor nedeni ne olabilir?
<?php
$tbl_name = $_COOKIE['e-mail_ctt'];
require_once('../config.php');
$name = (string)$_POST['name'];
$store = $_POST['store'];
$url = $_POST['url'];
$sku = $_POST['sku'];
$price = $_POST['price'];
$location = $_POST['location'];
$demo = "app";
$sql = "UPDATE " . $tbl_name . " SET Name='" . $name . "', Store='" . $store . "', URL='" . $url . "', SKU='" . $sku . "', Price='" . $price . "', Location='" . $location . $demo . "' WHERE ID='1';";
echo $sql;
mysql_query($sql) or die(mysql_error());
exit ;
?>
Tarayıcı Kaynak kodu:
UPDATE crisss1205_me_com SET Name='Mac', Store='mac', URL='mac', SKU='mac', Price='mac', Location='Online Store Onlyapp' WHERE ID='1';
Veritabanı: