作者hunter0711 (CD7)
看板Database
标题[SQL ] 资料库汇入除错
时间Mon Sep 7 00:34:10 2009
这是有关於将读取的.sql档,写入mysql资料库的程式
但是我是以分号判别一段SQL语法的结尾,但是好像不是很优!
因为也些SQL语法中间部份的value会用到分号!
所以我下面的程式读到一半都会中断,请问还有什麽判别的方式吗?
我是写在PHP上
之前有人讲到exec()这函数!
我电脑系统是windows的
但是PHP5是不是不能用了?
好像透过cmd也可以做到汇入的动作,但是我的PHP没办法执行。会的人可以帮我一下吗?
谢谢
<?php
$host = "localhost";
$database = "$account"; //读取使用者所输入的
$user = "root";
$pass = "12345";
$sqlFileToExecute ="./aa.sql"; //要载入的来源档(我放再同一个资料夹下)
$con = mysql_connect($host,$user,$pass);
$sql = " CREATE DATABASE `$account` " ; //建立使用者的资料库
mysql_query($sql);
mysql_select_db($database);
if ($con !== false){
// Load and explode the sql file
$f = fopen($sqlFileToExecute,"r+");
$sqlFile = fread($f,filesize($sqlFileToExecute));
$sqlArray = explode(';',$sqlFile);
}
//Process the sql file by statements
foreach ($sqlArray as $stmt) {
if (strlen($stmt)>3){
$result = mysql_query($stmt);
if (!$result){
$sqlErrorCode = mysql_errno();
$sqlErrorText = mysql_error();
$sqlStmt = $stmt;
break;
}
}
}
?>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.198.94.137
※ 编辑: hunter0711 来自: 60.198.94.137 (09/07 00:35)
1F:推 maplenote:mysql语法改用php的mysqli 应该就可以执行多笔的SQL语法 09/07 10:50
2F:推 appleboy46:用 mysqli 容易被执行多重 SQL 语法攻击 09/07 11:05
3F:→ hunter0711:痾~~要怎麽办!找好久都没有找到我要的方法= = 09/07 11:23
4F:推 maplenote:可是他只有这次要执行这些sql语法吧~当然正式网页不建议 09/07 11:27
5F:→ hunter0711:mysqli要怎麽写?第一次接触MYSQL今天你讲我才知道有~ 09/07 11:41
6F:→ hunter0711:那换个方向想假如是在mysql里做单纯的资料库复制勒? 09/07 12:05
8F:→ hunter0711:我再来研究看看好哩 谢啦 09/09 10:26