通过以下两个类,我尝试连接到MySQL数据库.但是,我总是得到这个错误:
Wed Dec 09 22:46:52 CET 2015 WARN:不建议在没有服务器身份验证的情况下建立SSL连接.根据MySQL 5.5.45 +,5.6.26 +和5.7.6+要求如果未设置显式选项,则必须默认建立SSL连接.为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为"false".您需要通过设置useSSL = false显式禁用SSL,或者设置useSSL = true并为服务器证书验证提供信任库.
这是使用以下main方法的测试类:
public class TestDatabase {
public static void main(String[] args) {
Database db = new Database();
try {
db.connect();
} catch (Exception e) {
e.printStackTrace();
}
db.close();
}
}
Run Code Online (Sandbox Code Playgroud)
这是Database班级:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Database {
private Connection con;
public void connect() throws Exception{
if(con != null) return;
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
throw …Run Code Online (Sandbox Code Playgroud) 我试图一次从几个表中删除.我做了一些研究,想出了这个
DELETE FROM `pets` p,
`pets_activities` pa
WHERE p.`order` > :order
AND p.`pet_id` = :pet_id
AND pa.`id` = p.`pet_id`
Run Code Online (Sandbox Code Playgroud)
但是,我收到了这个错误
Uncaught Database_Exception [1064]:您的SQL语法中有错误; 查看与您的MySQL服务器版本对应的手册,以便在'p,
pets_activitiespa ... 附近使用正确的语法
我以前从来没有做过十字表删除,所以我现在没经验并且卡住了!
我究竟做错了什么?
我收到此错误:
您的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以便在's','portal','','offer','MSNBC','News','','sports',''附近使用正确的语法,第3行的"MSN","金钱","游戏"
唯一的问题是插入包含撇号的数据时会出现此错误.我尝试将数据类型更改VARCHAR为TEXT,但结果仍然相同.
我试着把 addslashes()
如何解决这个问题?
编辑:
$query=" INSERT INTO alltags
(id,tag1,tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,tag10,tag11,tag12,tag13,tag14,tag15,tag16,tag17,tag18,tag19,tag20,tag21,tag22,tag23,tag24,tag25,tag26,tag27,tag28,tag29,tag30)
VALUES
('',mysql_real_escape_string($uniqkey[0]),mysql_real_escape_string($uniqkey[1]),mysql_real_escape_string($uniqkey[2]),mysql_real_escape_string($uniqkey[3]),mysql_real_escape_string($uniqkey[4]),mysql_real_escape_string($uniqkey[5]),mysql_real_escape_string($uniqkey[6]),mysql_real_escape_string($uniqkey[7]),mysql_real_escape_string($uniqkey[8]),mysql_real_escape_string($uniqkey[9]),mysql_real_escape_string($uniqkey[10]),mysql_real_escape_string($uniqkey[11]),mysql_real_escape_string($uniqkey[12]),mysql_real_escape_string($uniqkey[13]),mysql_real_escape_string($uniqkey[14]),mysql_real_escape_string($uniqkey[15]),mysql_real_escape_string($uniqkey[16]),mysql_real_escape_string($uniqkey[17]),mysql_real_escape_string($uniqkey[18]),mysql_real_escape_string($uniqkey[19]),mysql_real_escape_string($uniqkey[20]),mysql_real_escape_string($uniqkey[21]),mysql_real_escape_string($uniqkey[22]),mysql_real_escape_string($uniqkey[23]),mysql_real_escape_string($uniqkey[24]),mysql_real_escape_string($uniqkey[25]),mysql_real_escape_string($uniqkey[26]),mysql_real_escape_string($uniqkey[27]),mysql_real_escape_string($uniqkey[28]),mysql_real_escape_string($uniqkey[29])) ";
mysql_query($query) or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)
我改成了mysql_real_escape_string.这种语法是否正确?我收到了错误.
CREATE TABLE `users` (
`UID` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`username` VARCHAR(45) NOT NULL ,
`password` VARCHAR(100) NULL ,
`name` VARCHAR(100) NULL ,
`gender` BIT NULL ,
`email` VARCHAR(255) NULL ,
`phone` VARCHAR(30) NOT NULL ,
`verified` BIT NOT NULL DEFAULT 0 ,
`time_zone` INT NULL ,
`time_register` DATETIME NULL ,
`time_active` DATETIME NULL ,
PRIMARY KEY (`UID`) ,
UNIQUE INDEX `username_UNIQUE` (`username` ASC) ,
INDEX `verified_INDEX` (`verified` ASC) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8;
-- …Run Code Online (Sandbox Code Playgroud) 我设置了MySQL路径,但仍然得到相同的错误.请告诉我是否遵循了正确的方法.
MySQL的位置是: C:\Program Files\MySQL\MySQL Server 5.0\bin
在Windows中,系统变量我将路径设置为:
MYSQL_HOMEC:\Program Files\MySQL\MySQL Server 5.0\bin对于PATH设置:
PATH.;%JAVA_HOME%\bin;%MYSQL_HOME%\bin...如果它不正确,请告诉我正确的路径及其设置.
向MySQL发出命令时,我收到错误#1064"语法错误".
这是什么意思?
我该如何解决?
我查看了所有其他stackoverflow(和谷歌)帖子同样的问题,但似乎没有解决我的问题.
我正在使用pdo和php.
我的代码:
$vals = array(
':from' => $email,
':to' => $recipient,
':name' => $name,
':subject' => $subject,
':message' = >$message
);
print_r($vals);
try {
$pdo = new PDOConfig();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM messages WHERE `message` LIKE :message";
$q = $pdo->prepare($sql);
$q->execute(array(':message' => $vals[':message']));
$resp = $q->fetchAll();
foreach ($resp as $row) {
throw new Exception('Please do not post the same message twice!');
}
$sql = "INSERT INTO messages (from, to, name, subject, message) VALUES (:from, :to, :name, …Run Code Online (Sandbox Code Playgroud) 试着
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
入门
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行的"IDENTIFIED BY"root"WITH GRANT OPTION"附近使用.
注意:在MySQL 5.7中尝试时也一样
也试过了
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
入门
错误1410(42000):您不能使用GRANT创建用户
MySQL(8.0.11.0)用户名/密码是root/root.
我正在使用查询来更改列的charset
ALTER TABLE `media_value_report`
CHANGE `index_page_body` `index_page_body` TEXT CHARACTER
SET utf8 NULL DEFAULT NULL
Run Code Online (Sandbox Code Playgroud)
我想为其他列main_title,landing_page_body执行此操作.但是在执行时遇到#1064错误.我可以在一个查询中更改多个列吗?
我试过,但我发现在goog搜索中无法在单个查询中进行更改.
SELECT airline, airports.icao_code, continent, country, province, city, website
FROM airlines
FULL OUTER JOIN airports ON airlines.iaco_code = airports.iaco_code
FULL OUTER JOIN cities ON airports.city_id = cities.city_id
FULL OUTER JOIN provinces ON cities.province_id = provinces.province_id
FULL OUTER JOIN countries ON cities.country_id = countries.country_id
FULL OUTER JOIN continents ON countries.continent_id = continents.continent_id
Run Code Online (Sandbox Code Playgroud)
它说
您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便
airports在第4行的'aerites_iaco_code = airports.iaco_code全外连接' 附近使用正确的语法
语法看起来对我来说.我之前从未做过很多连接,但是我需要在表中使用各种id交叉引用的列.
mysql-error-1064 ×10
mysql ×9
sql ×5
php ×3
alter-table ×1
java ×1
join ×1
mysql-8.0 ×1
parsing ×1
pdo ×1
sql-delete ×1
ssl ×1
syntax ×1
syntax-error ×1