2つの異なる変数を使用しています:
$ parcelno
UPDATEクエリで
および$parcel =$ _REQUEST ['parcel'];
両方の変数は必須 マッチ。そうでない場合、クエリ全体が失敗します。
<?php
を開いた直後に、ファイルの先頭にエラーレポートを追加します タグ。実動前のテスト中に役立ちます。
error_reporting(E_ALL);
ini_set('display_errors', 1);
現在のコードは、SQLインジェクションに公開されています。 。 準備されたステートメントを使用します 、または PDO 準備されたステートメント 。
さらに、 nkchandra
を引用します コメントで+1
(可能であれば):
「あなたの質問には無関係ですが、参考までに、PHPMyAdminはデータベースではなく、あなたの場合はmysqlのようなデータベースと対話するためのツールです」
編集: コメントを読んだ後、 mysqli_<に切り替える必要があるようです。 / code>
関数。
これは、プリペアドステートメントの使用法を学ぶ前の簡単な修正です。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$DB_HOST = "xxx"; // replace with yours
$DB_USER = "xxx"; // replace with yours
$DB_PASS = "xxx"; // replace with yours
$DB_NAME = "xxx"; // replace with yours
$conn = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if($conn->connect_errno > 0) {
die('Connection failed [' . $conn->connect_error . ']');
}
$id= "";
$parcelno = "";
$items = "";
if(isset($_REQUEST['id'])){
$id= mysqli_real_escape_string($conn,$_REQUEST['id']); }
if(isset($_REQUEST['parcel'])){
$parcelno = mysqli_real_escape_string($conn,$_REQUEST['parcel']); }
if(isset($_REQUEST['items'])){
$items = mysqli_real_escape_string($conn,$_REQUEST['items']); }
$sql="UPDATE parcel SET parcelno='$parcelno', items='$items' where id='$id'";
$result=mysqli_query($conn,$sql) or die(mysqli_error()."\n");
if (!$result)
{
throw new Exception($conn->error);
}
else { echo "Success"; }
mysqli_close($conn); // close the connection
さらに、 r3wt's
による コメント:次も使用できます:
$result= $conn->query($sql) or die(mysqli_error()."\n");
の代わりに
$result=mysqli_query($conn,$sql) or die(mysqli_error()."\n");