Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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、SQL插入不起作用_Php_Mysql_Sql_Mysqli - Fatal编程技术网

PHP、SQL插入不起作用

PHP、SQL插入不起作用,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我想知道为什么我不能将新数据插入我的数据库。 在vardump中,我得到了很好的结果,但没有向数据库中添加任何内容 数据库:c_id=AutoInc.|a|u id | u id | c|u head | c|u content | c|u date =时间戳 您可以使用date('Y-m-dh:i:s')通过PHP代码在数据库中存储当前日期时间,而在查询中,您刚刚错过了将'放入数组索引中。 试试这个 if (isset($_POST['c_submit'])) { $date=date

我想知道为什么我不能将新数据插入我的数据库。 在vardump中,我得到了很好的结果,但没有向数据库中添加任何内容

数据库:c_id=AutoInc.|a|u id | u id | c|u head | c|u content | c|u date =时间戳

您可以使用
date('Y-m-dh:i:s')
通过PHP代码在数据库中存储当前日期时间,而在查询中,您刚刚错过了将'放入数组索引中。
试试这个

if (isset($_POST['c_submit'])) {
    $date=date('Y-m-d h:i:s');
    $sql_najdi_prihlaseneho_uzivatela = "SELECT * FROM users where u_name = '".$_SESSION['username']."'";
    $vysledokHladania = mysqli_query($connect_to_db, $sql_najdi_prihlaseneho_uzivatela);
    if (mysqli_num_rows($vysledokHladania) == 1) {
        while ($db_data_prihlaseneho_uzivatela = mysqli_fetch_assoc($vysledokHladania)) {
            $sql_vloz_komentar = "INSERT INTO comments (a_id, u_id, c_head, c_content, c_date) VALUES 
                                (".$_GET['a_id'].",".$db_data_prihlaseneho_uzivatela['u_id']." ,".$_POST['c_hlavicka']." ,".$_POST['c_obsah']." ,$date)";
            mysqli_query($connect_to_db, $sql_vloz_komentar);
        }
    }
}

我想它会对你有帮助。

你会转义varchar角色吗? 另一个可能的错误是数据库中的日期格式。 Post
echo$sql\u vloz\u komentar
查看insert语句和表结构

if (isset($_POST['c_submit'])) {
   $sql_najdi_prihlaseneho_uzivatela = "SELECT * FROM users where u_name = '$_SESSION[username]'";
   $vysledokHladania = mysqli_query($connect_to_db, $sql_najdi_prihlaseneho_uzivatela);
   if (mysqli_num_rows($vysledokHladania) == 1) {
       while ($db_data_prihlaseneho_uzivatela = mysqli_fetch_assoc($vysledokHladania)) {
            $sql_vloz_komentar = "INSERT INTO comments (a_id, u_id, c_head, c_content, c_date) VALUES ($_GET[a_id], $db_data_prihlaseneho_uzivatela[u_id], '$_POST[c_hlavicka]', '$_POST[c_obsah]', 'NOW()')";
            mysqli_query($connect_to_db, $sql_vloz_komentar);
        }
    }
}

a) 使用准备好的语句避免SQL注入。b) 检查
mysqli_error()
以查看您的查询有什么问题。此外,对
myqsli_结果
对象执行
count()
没有意义,您应该检查找到的行数。@Sirko mysqli_error没有给出任何我会猜到的东西,一些值需要包含在
中。
。您的
mysqli\u query()
调用的返回值是多少?@Sirko bool(false)所以问题是SQL命令,但idk where=\n很有趣,所以我可以使用schange数据库列时间STEMP到目前为止?或者简单的varchar/Text?只需将数据库列更改为varchar。no works=\可能问题出在a_id中,因为它与另一个数据库表有关系,其INT值从1到…@Patrik Horváth好的,那么您需要首先从该关系表中获取该
a_id
值,然后将其插入当前表中。以及$\你得到的不好吗?
if (isset($_POST['c_submit'])) {
   $sql_najdi_prihlaseneho_uzivatela = "SELECT * FROM users where u_name = '$_SESSION[username]'";
   $vysledokHladania = mysqli_query($connect_to_db, $sql_najdi_prihlaseneho_uzivatela);
   if (mysqli_num_rows($vysledokHladania) == 1) {
       while ($db_data_prihlaseneho_uzivatela = mysqli_fetch_assoc($vysledokHladania)) {
            $sql_vloz_komentar = "INSERT INTO comments (a_id, u_id, c_head, c_content, c_date) VALUES ($_GET[a_id], $db_data_prihlaseneho_uzivatela[u_id], '$_POST[c_hlavicka]', '$_POST[c_obsah]', 'NOW()')";
            mysqli_query($connect_to_db, $sql_vloz_komentar);
        }
    }
}