PHP、SQL插入不起作用
我想知道为什么我不能将新数据插入我的数据库。 在vardump中,我得到了很好的结果,但没有向数据库中添加任何内容 数据库:c_id=AutoInc.|a|u id | u id | c|u head | c|u content | c|u date =时间戳 您可以使用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
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);
}
}
}