$dbhost = 'localhost:3306' // mysql服务器主机地址
$dbuser = 'root' // mysql用户名
$dbpass = '123456' // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass)
if(! $conn ){
die('连接失败: ' . mysqli_error($conn))
}
echo '连接成功<br />' // 设置编码,防止中文乱码mysqli_query($conn , "set names utf8")
$runoob_title = '学习 Python'
$runoob_author = 'RUNOOB.COM'
$submission_date = '2016-03-06'
$sql = "INSERT INTO runoob_tbl ".
"(runoob_title,runoob_author, submission_date) ".
"VALUES ".
"('$runoob_title','$runoob_author','$submission_date')"
mysqli_select_db( $conn, 'RUNOOB' )$retval = mysqli_query( $conn, $sql )
if(! $retval ){
die('无法插入数据: ' . mysqli_error($conn))
}
echo "数据插入成功\n"
mysqli_close($conn)
?>
按照步骤开始,多看PHP手册。
<?php$file_name = "d:test.sql"
$dbhost = "localhost"
$dbuser = "root"
$dbpass = "123456"
$dbname = "test"
set_time_limit(0)
$fp = @fopen($file_name,"r") or die("sql文件打不开")//打开文件
$pdo = new PDO("mysql:host=localhostdbname=test","root","123456")//连接数据库
$pdo->query('set names utf8')//设置编码
echo "正在执行导入 *** 作"
while($SQL = GetNextSQL()){
if(!$pdo->query($SQL)){
echo "执行出错"
echo "SQL语句为".$SQL
}
}
echo "导入完成"
fclose($fp) or die("can't close file")//关闭文件
mysql_close()
//从文件中逐条取sql
function GetNextSQL(){
global $fp
$sql=""
while($line = @fgets($fp,40960)){
$line = trim($line)
$line = str_replace("////", "//", $line)
$line = str_replace("/","'",$line)
$line = str_replace("//r//n","chr(13).chr(10)",$line)
$line = stripcslashes($line)
if(strlen($line)>1){
if($line[0]=='-' &&$line[1]=="-"){
continue
}
}
$sql .= $line.chr(13).chr(10)
if(strlen($line)>0){
if($line[strlen($line)-1]==""){
break
}
}
}
return $sql
}
亲测有效。。
你的sql语句写错了,$sql = insert .......
正常的语句是
insert into test(name,age)values('张三','20')values 前面是字段结构,而你的sql语句values前面也是变量了,这里应该写与你数据库里相对应的字段,改好之后如果还有问题就 echo $sql然后拿到数据库里执行一遍,大部分都是粗心造成的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)