PHP/MySQL 查询 : Rows Not Being Inserted

标签 php mysql sql mysqli

我有一个大的 SQL 文件,正在尝试插入到数据库中。它无法通过 phpMyAdmin 工作,因为它太大了,所以我创建了一个自定义脚本:

<?php

ini_set('max_execution_time', 0);

$file = file_get_contents('./mySQLfile.sql');

//var_dump($file); die();

$conn = new mysqli('localhost', 'myUserName', 'myPassword', 'myDatabase');

$q = $file;

if ($result = $conn->query($q))
{
    echo '<font color="red">'.$conn->error.'</font>';
    echo '<br />';
}

?>

文件 var_dump() 正确。与数据库的连接已创建(我通过从数据库返回值来测试它)。但是,当我运行代码时,没有数据插入数据库。 SQL文件的开头如下:

-- phpMyAdmin SQL Dump
-- version 3.4.5
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Dec 05, 2012 at 04:01 PM
-- Server version: 5.5.16
-- PHP Version: 5.3.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `myDatabase`
--

-- --------------------------------------------------------

--
-- Table structure for table `content_field_image_cache`
--

CREATE TABLE IF NOT EXISTS `content_field_image_cache` (
  `vid` int(10) unsigned NOT NULL DEFAULT '0',
  `nid` int(10) unsigned NOT NULL DEFAULT '0',
  `delta` int(10) unsigned NOT NULL DEFAULT '0',
  `field_image_cache_fid` int(11) DEFAULT NULL,
  `field_image_cache_list` tinyint(4) DEFAULT NULL,
  `field_image_cache_data` text,
  PRIMARY KEY (`vid`,`delta`),
  KEY `nid` (`nid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `content_field_image_cache`
--

INSERT INTO `content_field_image_cache` (`vid`, `nid`, `delta`, `field_image_cache_fid`, `field_image_cache_list`, `field_image_cache_data`) VALUES
(1000, 1000, 0, 1000, 1, NULL),
(1001, 1001, 0, 1001, 1, NULL),
(1002, 1002, 0, 1002, 1, NULL),

为什么这些值不会被插入?

谢谢。

最佳答案

作为安全措施,PHP 的 mysql 驱动程序 (mysql/mysqli/pdo) 不允许在一次调用中进行多个查询。您不能将整个转储提供给这样的单个查询调用。

你最好只做类似的事情

exec("mysql -u xxx -p < dump.sql");

相反。

关于PHP/MySQL 查询 : Rows Not Being Inserted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13745916/

相关文章:

php - Javascript 和 PHP 函数

mysql - ubuntu下jsp无法连接数据库

mysql - 合并 3 个表的电子邮件字段 n 检查注册用户表中是否存在相同的邮件

SQL/BIGQUERY 运行平均值与日期中的 GAP

php - MySQL/PHP : Auto-Suggest entries similar to this one

javascript - 使用 Php、javascript 的 AES 加密,反之亦然

mysql - 主键冲突

MySQL:字段列表中的未知表

javascript - javascript、jquery在Symfony2中是如何工作的

java - 为什么唯一多重约束的 JPA 声明在 mySQL 中有效,但在 SQLite 中无效