[英]Won't Insert into mysql table
我正在构建一个私人消息传递网络,它似乎没有将它们插入到我指定的表中。 消息被发布到表中,然后在不同的脚本中访问。 我的查询有什么问题?
$new_of_id = $_SESSION['user_login'];
$send_msg = mysql_query("INSERT INTO pvt_messages VALUES ('','$new_of_id','$username','$msg_title','$msg_body','$date','$opened','$deleted')");
echo "Your message has been sent!";
}
}
echo "
<form action='send_msg.php?u=$username' method='POST'>
<h2>Compose a Message: ($username)</h2>
<input type='text' name='msg_title' size='30' onClick=\"value=''\" value='Enter the message title here ...'><p />
<textarea cols='50' rows='12' name='msg_body'>Enter the message you wish to send ...</textarea><p />
<input type='submit' name='submit' value='Send Message'>
</form>
";
}
这里有几件事。
目前,您正在发布一条成功消息,而没有检查您的 INSERT 查询的返回值。 您可以通过在打印消息之前检查 $send_msg 的值来解决此问题:
$send_msg = mysql_query("
INSERT INTO pvt_messages
VALUES(
'',
'$new_of_id',
'$username',
'$msg_title',
'$msg_body',
'$date',
'$opened',
'$deleted'
)
");
//$send_msg will be TRUE if the row was inserted. FALSE if it wasn't.
if($send_msg){
echo "Your message has been sent!";
}
else{
echo "We were unable to send your message!";
}
通过使用 trigger_error (mysql_error() 像这样:
$send_msg = mysql_query("
INSERT INTO pvt_messages
VALUES(
'',
'$new_of_id',
'$username',
'$msg_title',
'$msg_body',
'$date',
'$opened',
'$deleted'
)
") or trigger_error(mysql_error());
... 任何阻止您的 INSERT 正常运行的 MySQL 错误都将被吐出到页面上。 通过这种方式,您可以消除任何语法错误等等。 我的猜测是您正在尝试将一个空字符串插入到主键列中。
请不要在新代码中使用
mysql_*
函数。 它们不再被维护,弃用过程已经开始。 看到红框了吗? 了解准备好的语句,并使用PDO或MySQLi -本文将帮助您决定哪个。 如果您选择 PDO,这里有一个很好的教程。
尝试这样的事情 - 只是为了检查你是否弄乱了列字段(可能是一个可能的原因)
$send_msg = mysql_query("
INSERT INTO pvt_messages (
id,
name
)
VALUES(
'',
'$name'
)
");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.