Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个mysql语句未通过php执行(语句通过phpmyadmin工作)_Php_Mysql_Sql_Phpmyadmin - Fatal编程技术网

多个mysql语句未通过php执行(语句通过phpmyadmin工作)

多个mysql语句未通过php执行(语句通过phpmyadmin工作),php,mysql,sql,phpmyadmin,Php,Mysql,Sql,Phpmyadmin,在创建一个统计程序的同时,我一直在跟踪每小时有多少飞机访问一个机场 我的脚本计算过去一小时的航班数,并将其保存到数据库中。如果我在phpmyadmin中复制语句,我会不断得到mysql语法错误,它会正常工作 $date = 2013091713; //$date = date('YmdH', mktime(date('H'))); $sql = ''; foreach ($aerodrome as $icao => $value) { $sql .= "INSERT INTO f

在创建一个统计程序的同时,我一直在跟踪每小时有多少飞机访问一个机场

我的脚本计算过去一小时的航班数,并将其保存到数据库中。如果我在phpmyadmin中复制语句,我会不断得到mysql语法错误,它会正常工作

$date = 2013091713;
//$date = date('YmdH', mktime(date('H')));

$sql = '';
foreach ($aerodrome as $icao => $value) {
    $sql .= "INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) 
             VALUES('". $date ."', '" . $icao . "' , " . (isset($value['inboud']) ? $value['inboud'] : 0)  . ", " . (isset($value['outbound']) ? $value['outbound'] : 0) . ");";
}
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'EBBR' , 0, 1);
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'ELLX' , 0, 1);
if(mysql_query($sql))
{

} else{
    die(mysql_error());
}
编辑:Mysql错误:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near“INSERT INTO flightsperhour(日期、机场、入站、出站)值('2013'第2行)的正确语法

EDIT2:修复了单个缺失的

编辑3:应编程学生的要求,打印其解决方案

INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) 
             VALUES('2013091713', 'EBBR' , '', '1'),
             VALUES('2013091713', 'ELLX' , '', '1')
You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use 
near 'VALUES('2013091713', 'ELLX' , '', '1')' at line 3

您在
$date
$icao
之间缺少冒号
'

更正代码:

$date = 2013091713;
//$date = date('YmdH', mktime(date('H')));

$sql = '';
 $sql .= "INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) ";
foreach ($aerodrome as $icao => $value) {
    $inbound = isset($value['inboud']) ? $value['inboud'] : 0;
    $outbound = isset($value['outbound']) ? $value['outbound'] : 0;
    $sql .= "
             VALUES('". $date ."', '" . $icao . "' , '" . $inboud  . "', '" . $outbound . "'),";
}

$sql = substr($sql, 0, strlen($sql)-1);
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'EBBR' , 0, 1);
//INSERT INTO flightsperhour(date, aerodrome, inbound,outbound) VALUES('2013091713', 'ELLX' , 0, 1);
if(mysql_query($sql))
{

} else{
    die(mysql_error());
}

您尚未关闭
$date
的单引号,请将此
'“$date.”
更改为
'“$date.”

建议您使用PDO或MySQLi扩展,因为PHP5.5将不再支持MySQL扩展

$date = 2013091713;
//$date = date('YmdH', mktime(date('H')));

$db_conn = new PDO('mysql:host=<host>;dbname=<database name>', '<username>', '<password>');


try{
$sql = $db_conn->prepare("INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) VALUES (:date,:aerodrome,:inbound,:outbound)");

foreach ($aerodrome as $icao => $value) {
    $inbound = isset($value['inboud']) ? $value['inboud'] : 0;
    $outbound = isset($value['outbound']) ? $value['outbound'] : 0;
    $sql->execute(
            array(
                ":date" => $date,
                ":aerodrome" => $aerodrome,
                ":inbound" => $inbound,
                ":outbound" => $outbound
            )
    );
}
}
catch (PDOException $pe){
    print $pe->getMessage();
}
$date=2013091713;
//$date=date('YmdH',mktime(date('H'));
$db_conn=new PDO('mysql:host=;dbname=','');
试一试{
$sql=$db_conn->prepare(“插入flightsperhour(日期、机场、入站、出站)值(:日期、机场、入站、出站)”);
foreach(机场为$icao=>$value){
$inboud=isset($value['inboud'])?$value['inboud']:0;
$outbound=isset($value['outbound'])?$value['outbound']:0;
$sql->execute(
排列(
“:date”=>$date,
“:机场”=>$机场,
“:inbound”=>inbound美元,
“:outbound”=>$outbound
)
);
}
}
捕获(PDO异常$pe){
打印$pe->getMessage();
}

使用您的代码和我得到的回音语句的固定列仍然相同
插入flightsperhour(日期、机场、入站、出站)值('2013091713','EBBR','1');插入flightsperhour(日期、机场、入站、出站)值('2013091713','ELLX','1'));
这给出了完全相同的mysql错误您的答案结合Wrikken注释修复了问题注:您的代码是开放的。如果可能,使用PHP的新mysqli库而不是旧的mysql扩展并利用。只使用
一次,(因此
值(…第一行…)(…第二行…)(…第三行…)
,而不是
值(…第1行…),值(…第2行…),值(…第3行…)
,记住,在一个
mysql\u query()中只能得到一条语句。最后一条语句修复了它:-)感谢Wrikken不知道mysql查询函数只使用了一条语句
$date = 2013091713;
//$date = date('YmdH', mktime(date('H')));

$db_conn = new PDO('mysql:host=<host>;dbname=<database name>', '<username>', '<password>');


try{
$sql = $db_conn->prepare("INSERT INTO flightsperhour(date, aerodrome, inbound, outbound) VALUES (:date,:aerodrome,:inbound,:outbound)");

foreach ($aerodrome as $icao => $value) {
    $inbound = isset($value['inboud']) ? $value['inboud'] : 0;
    $outbound = isset($value['outbound']) ? $value['outbound'] : 0;
    $sql->execute(
            array(
                ":date" => $date,
                ":aerodrome" => $aerodrome,
                ":inbound" => $inbound,
                ":outbound" => $outbound
            )
    );
}
}
catch (PDOException $pe){
    print $pe->getMessage();
}