PHP初心者です。syntax error, unexpectedについて
PHP初心者です。現在PHPでSQliteを動かすプログラムを勉強しているのですが、「syntax error, unexpected T_ELSE」が出てきて困っています。
「SQLite入門」という書籍に書いてある通りに打ち込んでいるのですが、下のプログラムの■の部分でエラーが出ています。
何が原因なのでしょうか?知恵をお貸しください。
<?php
//データ取得
$act = (isset($_POST["act"])) ? $_POST["act"] : "";
$id = (isset($_REQUEST["id"])) ? intval($_RIQUEST["id"]) : "";
$contents = (isset($_POST["contents"])) ? $_POST["contents"] : "";
$title = (isset($_POST["title"])) ? $_POST["title"] : "(無題)";
$dt = date("y-m-d H:i:s");
//データベース初期設定
$conn = init();
//処理分岐
if($act == "保存" and $contents <> ""){ //保存
if(empty($id)){ //新規保存
$id = add_data($conn, $title, $contents, $dt);
}else{ //既存データ保存
update_data($conn, $id, $title, $contents, $dt);
}
}elseif($act == "選択したデータを削除"){ //削除
if(isset($_POST["c1"]));{
delete_data($conn, $_POST["c1"]);
}else{ ■ここ
echo "削除するデータが選択されていませんよ";
}
}elseif($act == "全データ削除"){ //全データ削除
delete_data($conn);
}elseif(act == "新規作成"){ //新規作成
clear_data();
}elseif(!empty($id)){ //編集
$row = get_data($conn, $id);
$title = $row["title"];
$contents = $row["contents"];
}
//データベースの初期化
function init(){
//データベースに接続
$conn = new PDD("sqlite:memo.sqlite");
//データベースの作成
$sql = "CREATE TABLE IF NOT EXISTS memo(
id INTEGER PRIMARY KEY AUTOINCREMENT,
tilte TEXT NOT NULL,
contents TEXT NOT NULL,
dt TEXT NOT NULL
)";
$stmt = $conn->prepare($sql);
$stmt->execute89;
return $conn;
}
//データの追加
function add_data($conn, $title, $contents, $dt){
$sql = "INSERT INTO memo(title, contents, dt)
VALUES(:title, :contents, :dt)";
$stme = $conn->prepare($sql);
$stmt->bindParam(":title", $title);
$stmt->bindParam(":contents", $contents);
$stmt->bindParam(":dt", $dt);
$stmt->execute();
$id = $conn->lastInsertId();
return $id;
}
//データ追加
function update_data($conn, $id, $title, $contents, $dt){
$sql = "UPDATE memo SET
title = :title,
contents = :contents,dt = :dt
WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(":id", $id);
$stmt->bindParam(":title", $title);
$stmt->bindParam(":contents", $contents);
$stmt->bindParam(":dt", $dt);
$stmt->execute();
}
//指定データ削除
function delete_data($conn, $data){
$sql = "DELETE FROM memo WHERE (id = :id)";
$stmt = $conn->prepare($sql);
for($i = 0; $i < count($data); $i++){
$stmt->bindParam(":id", $data[$i]);
$stmt->execyte();
}
clear_data();
}
//全データ削除
function delete_all_data($conn{
$sql = "DELETE FROM memo";
$stmt = $conn->prepare($sql);
$stmt->execute();
clear_data();
}
//データのクリア
function clear_data(){
global $id, $title, $contents;
$id = "";
$title = "(無題)";
$contents = "";
}
//編集データの取得
function get_date($conn, $id){
$sql = "SELECT * FROM memo WHERE id = :id";
$stmt = $conn->prepare($sql);
$stmt = bindParam(":id", $id);
$stmt = execute();
$row = $stmt->fetch(PDD::FETCH_ASSOC);
return $row;
}
?>
お礼
回答ありがとうございます。 確かにエラーメッセージをよく読めばヒントがつかめる話でしたね・・・。 仰る通り、onCreate1に引数を指定することで動作しました。 function onCreate1(e:Event):void { } >無名関数は引数を受け取らなくて良いのかなんなのか・・・ こちら調べて見たのですが、適切な回答は見つかりませんでした。 ちなみに※1を、 function(e:Event) :void{Alert.show("テーブルmeiboを作成しました"); } としても正常動作しますが、 function(e:Event, e2:Event) :void{Alert.show("テーブルmeiboを作成しました"); } とすると同様に#1063エラーが発生します。 どうやら無名関数の引数の数は暗黙的に指定されているようなのですね。