相关疑难解决方法(0)

何时在MySQL中使用单引号,双引号和后退标记

我正在尝试学习编写查询的最佳方法.我也理解保持一致的重要性.到现在为止,我已经随机使用了单引号,双引号和后退,没有任何实际想法.

例:

$query = 'INSERT INTO table (id, col1, col2) VALUES (NULL, val1, val2)';
Run Code Online (Sandbox Code Playgroud)

此外,在上面的例子中,考虑table可能是变量.

这是什么标准?你是做什么?

我一直在这里阅读类似问题的答案大约20分钟,但看起来这个问题没有明确的答案.

mysql sql quotes

605
推荐指数
11
解决办法
18万
查看次数

由于在MySQL中使用保留字作为表或列名称而导致语法错误

我正在尝试执行一个简单的MySQL查询,如下所示:

INSERT INTO user_details (username, location, key)
VALUES ('Tim', 'Florida', 42)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便'key) VALUES ('Tim', 'Florida', 42)'在第1行附近使用正确的语法

我该如何解决这个问题?

mysql reserved-words

48
推荐指数
1
解决办法
13万
查看次数

PHP PDO语法错误或访问冲突:插入时为1064

我有一个表名板,我正在尝试使用当前代码插入数据

function createBoard( $name, $desc  ) {
    try {
        $sth = $this->getLink()->prepare( "INSERT INTO boards(id,memberid,name,desc,datecreated,isactive) 
            VALUES(?,?,?,?,?,?)" );

        $uuid = $this->uuid();
        $memberid = 1;
        $date = Utils::getDate();
        $isactive = 1;

        $sth->bindParam( 1, $uuid );
        $sth->bindParam( 2, $memberid );
        $sth->bindParam( 3, $name );
        $sth->bindParam( 4, $desc );
        $sth->bindParam( 5, $date );
        $sth->bindParam( 6, $isactive );
        return $sth->execute();
    } catch( PDOException $e ) { 
        /*
         * save the error to the error log defined as @ERROR_LOG
         */ 
        file_put_contents( ERROR_LOG, ( "\n" . Utils::getDate() …
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

9
推荐指数
1
解决办法
3万
查看次数

我无法重命名mysql表名...它有一个空格

我已经将一个csv导入MySQL.PHPMyAdmin帮助创建了一个名为TABLE 8的表(带有空格).

当我尝试在SQL中重命名时:

RENAME TABLE 8 to gender
Run Code Online (Sandbox Code Playgroud)

我收到错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`TABLE 8` to `gender`' at line 1
Run Code Online (Sandbox Code Playgroud)

我试过回蜱,引号......看似一切......

我想这是导致问题的空间,但我没有想法.

mysql sql ddl syntax-error table-rename

4
推荐指数
1
解决办法
952
查看次数

更多PHP mySQL INSERT乐趣

mysql_query("INSERT INTO dictionary ('word', 'definition') VALUES ('".$word."','".$definition."');")
Run Code Online (Sandbox Code Playgroud)

那只是不会执行,当我echo- 它得到这个:

INSERT INTO dictionary ('word', 'definition') VALUES ('monkey','monkey');
Run Code Online (Sandbox Code Playgroud)

因此值得正确地被带入其中,如果我出去,mysql_error()我得到:

您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行''word','definition'VALUES('monkey','monkey')附近使用正确的语法

有任何想法吗?我很难过.

php mysql

1
推荐指数
1
解决办法
139
查看次数

Mysql Query正在搜索列名而不是值

这个查询出了什么问题?

SELECT
    `category`,
    (
        SELECT `name`
        FROM `city_names`
        WHERE `city_code`=`units`.`city_code`
    )as `cityName`,
    `email`
FROM
    `units`
WHERE
    (
        SELECT COUNT(*) 
        FROM `pesquisaRH` 
        WHERE `unit_code` = `units`.`unit_code`
    )=0 AND
    (
        (`category` LIKE `%central%`) OR 
        (`category` LIKE `%DPM%`) OR 
        (`category` LIKE `%DPC%`) OR  
        (`category` LIKE `%DIC%`)
    )
Run Code Online (Sandbox Code Playgroud)

它返回给我这个错误:

#1054 - Coluna '%central%' desconhecida em 'where clause'
Run Code Online (Sandbox Code Playgroud)

它似乎是在列名中搜索模式而不是其值.

我想找到没有回答问题的单位(在搜索"pesquisaRH"表时计数为0的单位)并且在其类别名称中有四个指定模式之一(%central%,%DPM%,%DPC %或%DIC%); 然后,返回他们的类别,他们所在城市的名称和他们的电子邮件.

mysql

1
推荐指数
1
解决办法
203
查看次数

我在哪里需要在我的MYSQL查询中使用反引号或引号?

我试图运行以下查询,但我不确定我的应该是不是,$ form_id =记录的列,$ user_id是名为cf_id的记录的主键.

$ querydate将在稍后的脚本中回显,因为它从记录中拉出等于$ form_id和$ user_id的日期.

$querydate = mysql_query("SELECT '$form_id' FROM email_history WHERE cf_id = '$user_id'") or die(mysql_error());
Run Code Online (Sandbox Code Playgroud)

编辑>>>>>>

在尝试了下面的一些解决方案之后,它似乎工作正常,但不是将日期存储在表单名称下,而是我得到了回声,所以我不确定现在发生了什么::资源ID#120:资源id#121:资源ID#122:资源ID#123

该表的设置类似于以下内容:

[USER_ID] [FORM_ID1212212]  [FORM_ID1212112]  
 [1]      [2-1-2012]        [2-1-2012]       
 [2]      [1-1-2012]        [1-1-2012]       
Run Code Online (Sandbox Code Playgroud)

php mysql

1
推荐指数
1
解决办法
3151
查看次数

在mysql语句中返回tick做什么?

在这样的声明中;

$sql = "SELECT distinct `term`,count(*) as count 
FROM {$temp_table_name} 
group by `term` order by count DESC";  
Run Code Online (Sandbox Code Playgroud)

在字段名称'term'周围使用后退字符(`)给我买什么?出于性能原因,是否使用了后退?或者它是否适用于某种SQL注入保护?

注意:在我提交问题之后,我意识到反引号字符没有显示在字段名称'term'周围 - 就在stackoverflow上.我不知道如何让它出现在问题体中.

mysql sql-injection

1
推荐指数
1
解决办法
2868
查看次数