Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么给mysqli_查询时换行符会消失?_Php_Mysql_Sql_Line Breaks - Fatal编程技术网

Php 为什么给mysqli_查询时换行符会消失?

Php 为什么给mysqli_查询时换行符会消失?,php,mysql,sql,line-breaks,Php,Mysql,Sql,Line Breaks,当我将触发器粘贴到相关数据库的phpmyadmin查询窗口中时,插入触发器的查询就会起作用。但是,当我尝试用mysqli_query将其查询到数据库时,换行符似乎消失了,导致它失败 代码: 我还尝试在TriggerQwry字符串上使用全引号“”和\n和\n\r和\r\n,但都得到了相同的结果 这是怎么回事 您实际上是在尝试使用MySQLi的multi_查询,但是MySQLi不处理分隔符。您应该将这两个查询分开,这样就不需要分隔符 尝试: $TriggerQwry = 'Delimiter $$

当我将触发器粘贴到相关数据库的phpmyadmin查询窗口中时,插入触发器的查询就会起作用。但是,当我尝试用mysqli_query将其查询到数据库时,换行符似乎消失了,导致它失败

代码:

我还尝试在TriggerQwry字符串上使用全引号“”和\n和\n\r和\r\n,但都得到了相同的结果


这是怎么回事

您实际上是在尝试使用MySQLi的multi_查询,但是MySQLi不处理分隔符。您应该将这两个查询分开,这样就不需要分隔符

尝试:


$TriggerQwry = 'Delimiter $$

                DROP TRIGGER IF EXISTS sign_chat;

    $$

    CREATE TRIGGER sign_chat BEFORE INSERT ON dark_taigachat FOR EACH ROW BEGIN

    IF (INSTR(NEW.message,"(") != 1) THEN

    SET NEW.message = CONCAT("(MC) ", NEW.message);

    END IF ;

    END ;';

    $DBConnect = mysqli_connect("localhost", "root", "************");
        mysqli_set_charset($DBConnect, "utf8");
        mysqli_select_db($DBConnect, 'minecraft_xenforo');                          

        $QueryResult = mysqli_query($DBConnect, $TriggerQwry);
        if($QueryResult) 
        {
            $result = mysqli_affected_rows($DBConnect);
        }
        else 
        {
            $result = 0; 
            echo "<p>Unable to execute the query.[".$TriggerQwry."]</p>" 
            . "<p>Error code " . mysqli_errno($DBConnect)
            . ": " . mysqli_error($DBConnect) . "</p>";
        }
        echo "Result[$Result]";
        mysqli_close($DBConnect);
Unable to execute the query.[Delimiter $$ DROP TRIGGER IF EXISTS sign_chat; $$ CREATE TRIGGER sign_chat BEFORE INSERT ON dark_taigachat FOR EACH ROW BEGIN IF (INSTR(NEW.message,"(") != 1) THEN SET NEW.message = CONCAT("(MC) ", NEW.message); END IF ; END ;]

Error code 1064: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'Delimiter $$ DROP TRIGGER IF EXISTS sign_chat; $$ CREATE ' at line 1
<?php
$DBConnect = mysqli_connect("localhost", "root", "************");
mysqli_set_charset($DBConnect, "utf8");
mysqli_select_db($DBConnect, 'minecraft_xenforo'); 

$sql = "DROP TRIGGER IF EXISTS sign_chat";
$DBConnect->query($sql);

$sql = "
CREATE TRIGGER sign_chat BEFORE INSERT ON dark_taigachat 
  FOR EACH ROW BEGIN
    IF (INSTR(NEW.message,"(") != 1) THEN
        SET NEW.message = CONCAT("(MC) ", NEW.message);
    END IF ;
  END
";
$DBConnect->query($sql);