重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

端末からもらったデータは、空白・改行を取り除きたいですが、trimを実行したら、うまくmysqlに格納できません。
問題点を教えてください。

ソースコード↓↓
<?php

if($_SERVER['REQUEST_METHOD']=='POST'){

include 'DatabaseConfig.php'; ⇐こちらは問題ないです

$con = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName);

$qrs = " 6月分
2020/05/29
2020/05/11
12A-34B-4567C
A購入
10";             ⇐この数字は不要です。
$quantity = $_POST['BQUANTITY'];
$area = $_POST['BAREA'];

$qr = explode("\n",qrs);
str0 = trim(qr[0],"\n\r");
str1 = trim(qr[0],"\n\r");
str2 = trim(qr[0],"\n\r");
str3 = trim(qr[0],"\n\r");
str4 = trim(qr[0],"\n\r");

$Sql_Query = ("set names utf8");
$Sql_Query = "INSERT INTO phptest (CYUBAN,NOUKI,RNOUKI,HINBAN,KHINBAN,QUERY,AREA) values ('$str0','$str1','$str2','str3','$str4','$quantity','$area')";

if(mysqli_query($con,$Sql_Query))
{
echo '入庫しました。';
}
else
{
echo 'エラー発生しました。';
}
}
mysqli_close($con);

?>

よろしくお願いいたします。

「PHPにおいて、配列データをMySQLに」の質問画像

A 回答 (3件)

更についでですが。



> values ('$str0','$str1','$str2','str3','$str4','$quantity','$area')";

ちなみにAccessとかを少し触った程度ですけど気になった点として値の与え方なのですが、'$str0' とかって変数の値を書き込んでいるのではなく文字列にしてしまった変数名を書き込んでませんでしょうか?

https://www.flatflag.nir87.com/update-950

経験皆無なので違うかも知れませんが、パラメーターでセットして更新が普通なのかなって。
    • good
    • 0
この回答へのお礼

返信遅くなり申し訳ありません。
問題解決しました。

なんが、PHPの書き方が間違っているようですが、
色々を弄って、出来ました。

色々教えてもらってありがとうございました。

現在のソースコードは貼り付けます。

<?php
if($_SERVER['REQUEST_METHOD']=='POST'){

include 'DatabaseConfig.php';

$con = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName);

if($con == false){
echo "接続エラー!エラーメッセージは".mysql_error($con);
exit();
}else{

$qr = $_POST['BQR'];
$quantity = $_POST['BQUANTITY'];
$area = $_POST['BAREA'];

$qrs = explode("\r\n",$qr);
$str0 = trim($qrs[0],"\n\r");
$str1 = trim($qrs[1],"\n\r");
$str2 = trim($qrs[2],"\n\r");
$str3 = trim($qrs[3],"\n\r");
$str4 = trim($qrs[4],"\n\r");


$Sql_Query = ("set names utf8");
$Sql_Query = "INSERT INTO bks_main (CYUBAN,NOUKI,RENOUKI,ZUBAN,NC,SURYO,TANABAN) values ('$str0','$str1','$str2','$str3','$str4','$quantity','$area')";

if(mysqli_query($con,$Sql_Query))
{
echo '入庫しました。';
}
else
{
echo 'エラー発生しました。';
}
}
}
mysqli_close($con);


?>

お礼日時:2020/08/26 08:09

あ、ついでに気になったのは。



分割したデータって全て文字列と思いますけど、そこは大丈夫なのでしょうか?
    • good
    • 0

PHPは良くわかりません!!!!!!



取り敢えずググって弄ったら

$qrs = " 6月分
2020/05/29
2020/05/11
12A-34B-4567C
A購入
10";

$qrs = trim($qrs);
$qr = explode("\n",$qrs);

var_dump($qr);

結果:

array(6) {
[0]=>
string(7) "6月分"
[1]=>
string(10) "2020/05/29"
[2]=>
string(10) "2020/05/11"
[3]=>
string(13) "12A-34B-4567C"
[4]=>
string(7) "A購入"
[5]=>
string(2) "10"
}


こんな結果になりました。
質問文では分割した変数内に改行があるように思われている?みたいですが、分割した際にもうすでに消えているのではないかなと。
VBAのSplit関数とかならそう受け取ってコードを書いた事はありますけど。

str0 = trim(qr[0],"\n\r");
str1 = trim(qr[0],"\n\r");
str2 = trim(qr[0],"\n\r");
str3 = trim(qr[0],"\n\r");
str4 = trim(qr[0],"\n\r");

ここはそれぞれの変数に入れる配列のインデックス番号はそれぞれで違うのではなくて?


PHPは初心者以下の者ですからもし違うようでしたらモニターのスイッチを切ってなかった事にしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!