Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 数据根本没有输入数据库?_Php_Mysqli - Fatal编程技术网

Php 数据根本没有输入数据库?

Php 数据根本没有输入数据库?,php,mysqli,Php,Mysqli,我对目前正在进行的一个项目有一个奇怪的问题。所有代码都会运行,不会出错,但值不会用INSERT语句输入数据库 代码如下: php(调用查询的文件): 当我收到电子邮件时,pipe.php中的所有其他代码行都会运行,但是没有数据添加到数据库中。有人知道原因吗?如果有,我如何才能使其插入数据?您需要在变量的名称中添加简单的引号:ticket\u id='$id'如果希望在数据中转义这些引号,您应该使用单引号和mysql\u real\u escape\u string方法。这里有一个例子: $ema

我对目前正在进行的一个项目有一个奇怪的问题。所有代码都会运行,不会出错,但值不会用INSERT语句输入数据库

代码如下:

php(调用查询的文件):


当我收到电子邮件时,pipe.php中的所有其他代码行都会运行,但是没有数据添加到数据库中。有人知道原因吗?如果有,我如何才能使其插入数据?

您需要在变量的名称中添加简单的引号:
ticket\u id='$id'
如果希望在数据中转义这些引号,您应该使用单引号和
mysql\u real\u escape\u string
方法。这里有一个例子:

$emailbody = mysql_real_escape_string($mail->getPlainBody());
$emailsubject = mysql_real_escape_string($mail->getSubject());
$from = mysql_real_escape_string($mail->getHeader("From"));

$db->query("INSERT INTO tickets VALUES ($id, '$emailsubject', '$emailbody', '$from')");
从:

mysql_real_escape_string-为一个字符串中的特殊字符进行转义 在SQL语句中使用


为什么在
INSERT
query中有反斜杠?@str将PHP的括号转义。你不必这样做。@str D'oh!我记得。。。现在。票证id设置为int.2。我对Insert语句有问题。是的,即使
$id
包含int,也需要用简单的引号括起来,否则。。。查询将不会插入数据。
$db->query(“插入票证值\($id、$emailsubject、$emailbody、$from\)”将是
$db->query(“插入票据值('$id'、'$emailsubject'、'$emailbody'、'$from'))我的头撞到了所有的东西:P多尴尬啊!谢谢:)
<?php

class Db
{

    private $link;

    /**
     * Constructor.
     * @param array $dbconfig Array of database configuration:
     *
     * host - database host
     * user - database user
     * password - database user password
     * dbname - database name
     * port - database server port
     */
    public function __construct(array $dbconfig)
    {
        $this->link = mysqli_connect($dbconfig['host'], $dbconfig['user'], $dbconfig['password'], $dbconfig['dbname'], $dbconfig['port']);

        if (!$this->link)
        {
            throw new DatabaseException("Unable to connect to database, please check the settings in the config.php file!");
        }

    }

    /**
     * Query the database
     * @param string $query SQL query to run
     * @return mysqli_result
     */
    public function query($query)
    {
        $result = mysqli_query($this->link, $query);
        $this->checkError();
        return $result;
    }

    /**
     * Gets the first row of a query.
     * @param string $query SQL query
     * @return array Enumeriated array of first row contents.
     */
    public function query_first($query)
    {
        $result = mysqli_fetch_row($this->query($query));
        $this->checkError();
        return $result;
    }

    /**
     * Gets the first row of a query as an associative array
     * @param string $query SQL Query
     * @return array Associative array of row. Column name->column value.
     */
    public function query_assoc($query)
    {
        $result = mysqli_fetch_assoc($this->query($query));
        $this->checkError();
        return $result;
    }

    /**
     * Gets all results as array.
     * @param unknown $query
     * @param string $resulttype
     * @return array
     */
    public function query_all($query)
    {

        if (function_exists('mysqli_fetch_all')) # Compatibility layer with PHP < 5.3
                $res = mysqli_fetch_all($this->query($query));
            else
                for ($res = array(); $tmp = mysqli_fetch_array($this->query($query));) $res[] = $tmp;

            return $res;
    }

    public function checkError()
    {
        if ($this->error != '')
        {
            throw new DatabaseException("Database Error(s) Occured: $this->error");
        }
    }

    /**
     * Get this instance of this object.
     * @return Db
     */
    public static function _getInstance()
    {
        return $this;
    }

    public function __get($name)
    {
        switch ($name) {
            case "error":
                $this->error = mysqli_error($this->link);
                break;
        }
    }
}
$emailbody = mysql_real_escape_string($mail->getPlainBody());
$emailsubject = mysql_real_escape_string($mail->getSubject());
$from = mysql_real_escape_string($mail->getHeader("From"));

$db->query("INSERT INTO tickets VALUES ($id, '$emailsubject', '$emailbody', '$from')");