我知道有很多线程有相同的错误,但没有人帮助我。
所以我安装文件nag给我错误:
install / index.php中第169行的致命错误:未捕获的异常' PDOException' with message' SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MySQL服务器版本相对应的手册,以便使用接近' - 表结构
portfolio
- DROP TABLE IF EXIST'在第1行'在C:\ wamp \ www \ portfolio \ install \ index.php:169堆栈跟踪:0 C:\ wamp \ www \ portfolio \ install \ index.php(169):PDO->查询(' \ xEF \ xBB \ xBF - \ r \ n \ n \ \ xD0 \ xA1 \ xD1 \ x82 \ xD1 ...')
在第169行的C:\ wamp \ www \ portfolio \ install \ index.php中抛出1 {main}
是:
$error = '';
@ set_magic_quotes_runtime(0);
$query = fread(fopen('install.sql', 'r'), filesize('install.sql'));
$pieces = split_sql($query);
for ($i = 0; $i < count($pieces); $i++) {
$pieces[$i] = trim($pieces[$i]);
if (!empty ($pieces[$i]) && $pieces[$i] != "#") {
if (!$pdo->query($pieces[$i]) ) { //this is 169 line
$error = $error . $pdo->error() . '<br />';
}
}
}
和split_sql函数:
function split_sql($sql) {
$sql = trim($sql);
$sql = ereg_replace("\n#[^\n]*\n", "\n", $sql);
$buffer = array();
$ret = array();
$in_string = false;
for ($i = 0; $i < strlen($sql) - 1; $i++) {
if ($sql[$i] == ";" && !$in_string) {
$ret[] = substr($sql, 0, $i);
$sql = substr($sql, $i + 1);
$i = 0;
}
if ($in_string && ($sql[$i] == $in_string) && $buffer[1] != "\\") {
$in_string = false;
}
elseif (!$in_string && ($sql[$i] == '"' || $sql[$i] == "'") && (!isset ($buffer[0]) || $buffer[0] != "\\")) {
$in_string = $sql[$i];
}
if (isset ($buffer[1])) {
$buffer[0] = $buffer[1];
}
$buffer[1] = $sql[$i];
}
if (!empty ($sql)) {
$ret[] = $sql;
}
return ($ret);
}
为什么脚本会出现此错误?