我需要执行一个.sql文件,它有大约48个表来创建.它由注释和sql命令组成,以";"结尾.有没有办法运行这些sql命令,一次将它们带到一个字符串.我的意思是我需要使用php立即运行整个文件.我可以使用mysql_query函数逐行执行该文件.但我需要做的是一次执行所有这些,就像在phpmyadmin中一样.
有没有办法做到这一点.我需要使用php来做到这一点.有人可以帮我吗?
我使用Java ASM编写一个简单的程序来生成通过编译以下类生成的字节代码.
public class Main {
public static void main(String[] args) {
System.out.println("Test");
}
}
Run Code Online (Sandbox Code Playgroud)
我编写的用于生成此类的字节码的代码如下所示.
public class CodeGenerator {
public void generateClass()
{
ClassWriter cw=new ClassWriter(Opcodes.NULL);
FieldVisitor fv;
MethodVisitor mv;
cw.visit(Opcodes.V1_1, Opcodes.ACC_PUBLIC, "Main", null, "java/lang/Object", null);
mv=cw.visitMethod(Opcodes.ACC_PUBLIC, "<init>", "()V", null, null);
mv.visitVarInsn(Opcodes.AALOAD, 0);
mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
mv.visitInsn(Opcodes.RETURN);
mv.visitMaxs(1, 1);
mv.visitEnd();
mv=cw.visitMethod(Opcodes.ACC_PUBLIC+ Opcodes.ACC_STATIC, "Main", "([Ljava/lang/String;)V", null, null);
mv.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream");
mv.visitLdcInsn("Test");
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream", "println", "(Ljava/lang/String;)V");
mv.visitInsn(Opcodes.RETURN);
mv.visitMaxs(2, 1);
mv.visitEnd();
cw.visitEnd();
this.WriteClass(cw);
}
public void WriteClass(ClassWriter cw){
FileOutputStream fos; …Run Code Online (Sandbox Code Playgroud)