OO-PHP-MySQL连接
我是PHP语言的新手,事实上,这周我开始学习它 尝试将某些文件连接到SQL数据库时,我收到以下错误消息: 分析错误:语法错误,意外的T_变量,第56行的/home/cpapalardo/wwwroot/Calendario/Calendar.php中需要T_函数 第56行是:OO-PHP-MySQL连接,php,mysql,oop,Php,Mysql,Oop,我是PHP语言的新手,事实上,这周我开始学习它 尝试将某些文件连接到SQL数据库时,我收到以下错误消息: 分析错误:语法错误,意外的T_变量,第56行的/home/cpapalardo/wwwroot/Calendario/Calendar.php中需要T_函数 第56行是: $result = mysql_query("SELECT event_id, event_title FROM event"); 我不知道我做错了什么。有人能帮我拿这个吗 提前谢谢 代码如下: <?php inc
$result = mysql_query("SELECT event_id, event_title FROM event");
我不知道我做错了什么。有人能帮我拿这个吗
提前谢谢
代码如下:
<?php include("DB_Connect.php");
class Calendar1 extends DB_Connect{
private $data;
private $month;
private $year;
private $daysMonth;
private $startDay;
public function __construct($dbo=NULL, $data=NULL){
parent::__construct();
if(isset($data)){
$this->data = $data;
}else{
$this->data = date('Y-m-d H:i:s');
}
//convert to timestamp and determines month and year of the calendar
$ts = strtotime($this->data);
$this->month= date("m", $ts);
$this->year= date('Y', $ts);
//how many days the month has
$this->daysMonth= date('t', strtotime($year.'-'.($month-1).'-01'));
//what day of the week the month starts in
$ts = mktime(0, 0, 0, $this->month, 1, $this->year);
$this->startDay= date('w', $ts);
}
private function loadEventData($id=NULL){
$sql = "SELECT
'event_id', 'event_title', 'event_desc', 'event_start', 'event_end'
FROM 'events'";
if(!empty($id)){
$sql .="WHERE 'event_id'=:id LIMIT 1";//returns one result
}else{
$start_ts = mktime(0, 0, 0, $this->month, 1, $this->year);
$end_ts = mktime(23, 59, 59, $this->month+ 1, 0, $this->year);
$start_date = date('Y-m-d H:i:s', $start_ts);
$end_date = date('Y-m-d H:i:s', $end_ts);
$sql = "WHERE 'event_start'
BETWEEN '$start_date'
AND '$end_date'
ORDER BY 'event_start'";
}
}
}
//execute the SQL query and return records
$result = mysql_query("SELECT event_id, event_title FROM event");
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
echo "ID:".$row['event_id']." Name:".$row['event_title'];
}
?>
<?php
class DB_Connect{
protected $cn;
public function __construct(){
$cn = mysql_connect("testDatabase", "admin", "pass123");
mysql_select_db("admin", $cn);
}
}
?>
可以使用[]方括号而不是{}访问数组元素。您需要更改以下行:
echo "ID:".$row{'event_id'}." Name:".$row{'event_title'};
具体如下:
echo "ID:".$row['event_id']." Name:".$row['event_title'];
编辑
您正在为列和表使用单引号。要么删除它们,要么使用反勾号
$sql = "SELECT
'event_id', 'event_title', 'event_desc', 'event_start', 'event_end'
FROM 'events'";
应该是:
$sql = "SELECT
event_id, event_title, event_desc, event_start, event_end
FROM events";
此行$sql.=其中'event_id'=:id LIMIT 1//使用:id返回一个结果,该绑定方法未在代码中实现
您可能必须将其更改为$sql.=其中event_id=$id LIMIT 1//返回一个结果
由于它是一个列,因此没有在event_id周围加引号
新重写:
改为:
echo "ID:".$row['event_id']." Name:".$row['event_title'];
“event_start”的行顺序不应用单引号括起来
使用
或
重写:
<?php
include("DB_Connect.php");
class Calendar extends DB_Connect{
private $data;
private $month;
private $year;
private $daysMonth;
private $startDay;
public function __construct($dbo=NULL, $data=NULL){
parent::__construct();
if(isset($data)){
$this->data = $data;
}else{
$this->data = date('Y-m-d H:i:s');
}
//convert to timestamp and determines month and year of the calendar
$ts = strtotime($this->data);
$this->month= date("m", $ts);
$this->year= date('Y', $ts);
//how many days the month has
$this->daysMonth= date('t', strtotime($year.'-'.($month-1).'-01'));
//what day of the week the month starts in
$ts = mktime(0, 0, 0, $this->month, 1, $this->year);
$this->startDay= date('w', $ts);
}
private function loadEventData($id=NULL){
$sql = "SELECT
'event_id', 'event_title', 'event_desc', 'event_start', 'event_end'
FROM 'events'";
if(!empty($id)){
$sql .="WHERE 'event_id'=:id LIMIT 1";//returns one result
}else{
$start_ts = mktime(0, 0, 0, $this->month, 1, $this->year);
$end_ts = mktime(23, 59, 59, $this->month+ 1, 0, $this->year);
$start_date = date('Y-m-d H:i:s', $start_ts);
$end_date = date('Y-m-d H:i:s', $end_ts);
$sql = "WHERE 'event_start'
BETWEEN '$start_date'
AND '$end_date'
ORDER BY `event_start`";
}
}
}
//execute the SQL query and return records
$result = mysql_query("SELECT event_id, event_title FROM event");
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
echo "ID:".$row['event_id']." Name:".$row['event_title'];
}
$evento = mysql_query("select * from event");
while ($row = mysql_fetch_array ($evento)){
echo $row['event_id'] . "<br>" . $row['event_title'] . "<br>";
}
?>
旁注:第一段代码中的大括号似乎不匹配,在我的IDE中也不匹配。尝试删除上次while循环后的最后一个大括号,然后将其移动到//执行SQL查询并返回记录请查看MySQLi而不是PHP的MySQL函数。在/*$evento=MySQL\u queryselect*from event中还有一个开始注释标记/*;但是没有关闭*/这样也会抛出/导致错误。我很难给出一个答案,因为我不知道你是否希望它被注释掉。你过早地关闭了你的方法,就在给出错误的那一行之前。你也不会关门。你应该把实际的密码发出来。嘿,谢谢你的回答。我对代码做了一些修改。我用的是记事本++,所以我对大括号有点困惑。很抱歉给您带来不便。不止这些,没有查询会执行。代码写为SELECT“event_id”。。。等等,你是对的@AbhikChakraborty,我在试图快速回复时错过了这个,Fred-ii-,谢谢你的帮助!当我写这个问题时,我很匆忙,忘记了修复代码的某些部分。我仍然收到相同的错误消息,但是现在我可以看到MySQL的选择结果了!我仍在查找如何修复此错误消息。再次感谢!:@不客气。我正要将“事件开始”的顺序改为“事件开始”的顺序,不应该用单引号括起来。看看这个改变是否能修复你的代码。我用同样的代码编辑了我的答案。我发现了更多的错误@如果您发布的代码是您的生产代码,请告诉我。我将发布一个快速编辑。请参阅我的编辑,并在New rewrite@CPpaI下发现其他内容。您有一个查询,其中包含表的事件和单数形式的事件;它是哪一个,或者您在两个不同的表中同时使用这两个@CPpa
echo "ID:".$row['event_id']." Name:".$row['event_title'];
ORDER BY event_start
ORDER BY `event_start`
<?php
include("DB_Connect.php");
class Calendar extends DB_Connect{
private $data;
private $month;
private $year;
private $daysMonth;
private $startDay;
public function __construct($dbo=NULL, $data=NULL){
parent::__construct();
if(isset($data)){
$this->data = $data;
}else{
$this->data = date('Y-m-d H:i:s');
}
//convert to timestamp and determines month and year of the calendar
$ts = strtotime($this->data);
$this->month= date("m", $ts);
$this->year= date('Y', $ts);
//how many days the month has
$this->daysMonth= date('t', strtotime($year.'-'.($month-1).'-01'));
//what day of the week the month starts in
$ts = mktime(0, 0, 0, $this->month, 1, $this->year);
$this->startDay= date('w', $ts);
}
private function loadEventData($id=NULL){
$sql = "SELECT
'event_id', 'event_title', 'event_desc', 'event_start', 'event_end'
FROM 'events'";
if(!empty($id)){
$sql .="WHERE 'event_id'=:id LIMIT 1";//returns one result
}else{
$start_ts = mktime(0, 0, 0, $this->month, 1, $this->year);
$end_ts = mktime(23, 59, 59, $this->month+ 1, 0, $this->year);
$start_date = date('Y-m-d H:i:s', $start_ts);
$end_date = date('Y-m-d H:i:s', $end_ts);
$sql = "WHERE 'event_start'
BETWEEN '$start_date'
AND '$end_date'
ORDER BY `event_start`";
}
}
}
//execute the SQL query and return records
$result = mysql_query("SELECT event_id, event_title FROM event");
//fetch tha data from the database
while ($row = mysql_fetch_array($result)) {
echo "ID:".$row['event_id']." Name:".$row['event_title'];
}
$evento = mysql_query("select * from event");
while ($row = mysql_fetch_array ($evento)){
echo $row['event_id'] . "<br>" . $row['event_title'] . "<br>";
}
?>