私はフォームデータを複数のテーブルに挿入するphp関数を持っています。 JSONレスポンスに「true」を返したいと思います。これは私が試したコードですが、空の文字列を返します。それはなぜそうですか?助言がありますか?php関数が空のjson文字列を返す
コード
function insertStores($params)
{
$img = $_FILES['sm_image']['name'];
$chk=mysqli_query($this->conn,"select * from store_manufacture where sm_brand_name='".$params['sm_name']."'");
if(mysqli_num_rows($chk)==0) {
$query = "INSERT INTO store_manufacture (sm_brand_name,sm_image, sm_link, sm_description,sm_display) VALUES('" . $params["sm_name"] . "','" . $img . "', '" . $params["sm_link"] . "','" . $params["sm_desc"] . "','" . $params["sm_switch"] . "'); ";
$result = mysqli_query($this->conn, $query);
if ($result) {
$store_id = mysqli_insert_id($this->conn);
foreach ($params['categories_chk'] as $cat_id => $name) {
$query2 = "insert into store_category values ('',$store_id,$cat_id)";
$result2 = mysqli_query($this->conn, $query2);
$sourcePath = $_FILES['sm_image']['tmp_name'];
$targetPath = "images/" . $img;
move_uploaded_file($sourcePath, $targetPath);
}
}
echo json_encode($result);
}
}
私はJSON/JSエキスパートではありませんが、文字列 'true'または' false'を返すと思います。 – AbraCadaver
'SELECT'が0行を返す場合、何もエコーしません。 – Barmar
行がすでにテーブルに入っていて、何も挿入されない場合は、何をエコーするのでしょうか? – Barmar