データベースの一部の値を更新しようとしています。クエリを実行した後、データベースの値が更新されず、空白の値に置き換えられます。MySQLクエリの後、行に空白の値が表示される
これは私のPHPコードです:
$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;';
、それはすべてのエラーを返しません。変数$名は、私がecho $sql;
を使用してクエリをプリントアウトした場合、それはこのようになります$ _POST
から来ている:
UPDATE crisss1205_me_comのSET
Name
= 'HelloWorldの'、Store
= 'りんご'、URL
= 'リンゴ'、SKU
= 'リンゴ'、Price
= 'リンゴ'、Location
= 'リンゴ' CONVERT(crisss1205_me_com
ID
UTF8を用いた。)= '1' LIMIT 1。
"名前"列のデータベースでは、空白が表示されます。
クエリをそのままにして、$name = $_POST['name'];
を$name = "HelloWorld";
に変更すると、データベースが正常に更新されます。
「POST」から表示されない理由は何ですか?
<?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 ;
?>
ブラウザのソースコード:
UPDATE crisss1205_me_com SET Name='Mac', Store='mac', URL='mac', SKU='mac', Price='mac', Location='Online Store Onlyapp' WHERE ID='1';
データベース:
は、echoed sqlとまったく同じコピー/貼り付け出力ですか?それは '文字が不足しているようです。奇妙なことがここで起こっている。 – dqhendricks
これは、\ '文字が表示されないというのは少し奇妙です。良いキャッチ@dqhendricks。 @Christan、mysqlまたはmysqliの後にその文字列がエコーされていますか? '$ sql =' ... '行の直後ですか? – RobertB
これは私のブラウザからの正確なコピーです。 –