こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQL のエラーメッセージ

Windows10上でApacheサーバーとMySQLを使ってプログラムを作っています。
HTML文書からPHPスクリプトを読んでいるのですが以下のメッセージが出てきます。
Parse error: syntax error, unexpected $end in C:\xampp\htdocs\karaoke_project\karaoke_data_conversion.php on line 96
この96行目というのは実は何もなくて、サクラエディターを使っているので黒抜きの[EOF] というのが出ているだけです。文書の最後にいつも出ているやつです。
他の簡単なHTMLからPHPの呼び出しができることは確認済みです。
スクリプトを何度も読み返してみましたが、何が悪いのか全く見当がつきません。
詳しい方がいらっしゃいましたら、ぜひ教えてください。
お願いいたします。
下に、HTML文書とPHPスクリプトをコピーしてあります。

HTML:
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> form sample</title>
</head>

<body>
sample for to connect to MySQL</br>
Input the song number.</br>

<form method="post" action="karaoke_data_conversion.php">

<input type="text" name="tx"></br></br>
<input type="submit" name="sb" value="press to start MySQL">
</form>
</body>
</html>



PHP:
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title> karaoke_data_conversion.php</title>
</head>

<body>
<h1> start PHP program using MySQL</h1></br>

<?php
$TX=htmlspecialchars($_POST['tx']);
echo "sent data is :"."\"".$TX."\"";
//========================================
// path and name: C:\xampp\htdocs\karaoke_project\karaoke_data_conversion.php
// php script to convert original song path data into song number and songfullpath
//=========================================

$cxn=mysqli_connect("localhost","root","phpscript1682")
or exit("failed to connect to MySQL");
echo "connected to MySQL </br>";

mysqli_select_db(karaoke)
or die("failed to open karaoke database");
echo "opened database karaoke</br>";

$source_table="originalpath"; // original database table
$destnation_table="num2song"; // new table with song number and song path separated

$number="";// extracted song number
$path=""; // extracted song path
$bango=array("","","","","","","","");
$moji="";
$start=0;
$idnum=1;

while ($idnum<10){
// get the original path data from database table
$jobrequest="select songpath from "."\"".$source_table."\""." where id=$idnum";
// integer variable does not need "" to enclose
$result=mysqli_query($cxn, $jobrequest)
or die("fail to get job done");

// extract song number and song path here
// and assign them to $number and $path
$length=mb_strlen($result,'UTF-8'); // get the length of the original path
echo "length of the path is ".$length;

for ($i=$length-5; $i>0; $i--) {// ignore ".avi" part
$moji=mb_substr($result,$i,1,'UTF-8');
if ($moji="\\"){
$start=$i+1;
break;
}

for ($i=$start;$i<$length-5; $i++){
$moji=mb_substr($result,$i,1,"UTF-8");
if ($moji==" " || $moji==" "){
break;
}

if (($moji >="0" && $moji <="9") || $moji=="\\"){
$bango[$i-$start]=$moji;
}
}

$number="";
$i=0;
while( $bango[$i]!=""){
$number .= $bango[$i];
$i++;
}
$number .="\0";

// write the separated data into destination_table
$jobrequest="insert into "."\"".$destination_table."\""." (songnum, songfullpath)";
$jobrequest .=" values ("."\"".$number."\"".","."\"". $path."\"".")";
// variable values must be enclosed by ""
// $jobrequest itslf must be enclosed by "" as well
mysqli_query($jobrequest)
or die("cannot add data to the table");
echo "new data added";
$idnum++; // next data
// reset bango array (8 elements) to null
for($i=0; $i<8; $i++){
$bango[$i]="";
}
} // end while
echo "data conversion is complete</br>";
mysqli_close($cxn);
?>

</body>
</html>

ちなみに、この</html> が95行目で、この下に[EOF] と出ています。

投稿日時 - 2018-08-25 06:53:53

QNo.9530664

困ってます

質問者が選んだベストアンサー

かっこ閉じ忘れとかないですか?
開発環境を使うとそういうミスが減りますよ

投稿日時 - 2018-08-25 07:47:04

補足

早速にご回答いただき、有難うございます。
もう一度見てみましたが、かっこの閉じ忘れといったものはありませんでした。 IDEとして以前Eclipsを使ったことがありましたが、なかなか複雑で慣れなくて、エディターを使ってコーディングするのが手軽な気がしています。
色々とスクリプトを変えながらバグを探していますが、質問したのとは違うエラーメッセージが出てきます。
おそらくMySQL関数の使い方に間違いがあるのだと思います。
この質問はいったん閉めさせてもらって、別の形の質問をしたいと思います。

お礼コメントの欄に文章を入れて出そうとしたら、なぜかおかしな具合になってできませんでしたので、補足コメントに入れさせてもらいます。

投稿日時 - 2018-08-25 11:17:24

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問