Php Mysql查询语法问题
有人能告诉我我的sql查询sintax有什么问题吗 在mysql上是否有任何方法可以获得查询的确切错误Php Mysql查询语法问题,php,mysql,joomla,Php,Mysql,Joomla,有人能告诉我我的sql查询sintax有什么问题吗 在mysql上是否有任何方法可以获得查询的确切错误 <?php // If the constant _JEXEC is not defined, quit now. // This stops this script from running outside of the system. defined( '_JEXEC' ) or die( 'Restricted access' ); ?> <script typ
<?php
// If the constant _JEXEC is not defined, quit now.
// This stops this script from running outside of the system.
defined( '_JEXEC' ) or die( 'Restricted access' );
?>
<script type="text/javascript" language="javascript">
function proceed()
{
check = document.getElementById('checkToProceed');
proceedButton = document.getElementById('proceedButton');
if (check.checked)
{
proceedButton.disabled = false;
}
else
{
proceedButton.disabled = true;
}
}
</script>
<?php
if ($_POST['proceedButton'] != '') {
$user = JFactory::getUser();
$id = $user->get('id');
$name = $user->get('name');
$username = $user->get('username');
$department = $user->get('department');
$vardate = date("m/d/y : H:i:s", time());
$acknowledge = 1;
$courseTitle = $mainframe->getPageTitle();
/***************************************/
$db = &JFactory::getDBO();
$query = "INSERT INTO `jos_jquarks_users_acknowledge`(course_name)VALUES('hello')";
$db->setQuery($query);
$db->query();
echo mysql_error ();
if($db->getErrorNum()) {
JError::raiseError( 500, $db->stderr());
}
}
?>
<form name="quiz_info" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<input type="checkbox" id="checkToProceed" name="checkToProceed" onclick="proceed();" />
<label for="checkToProceed">
<?php echo JText::_('I have Read and Acknowledge the procedure'); ?>
</label>
<input id="proceedButton" name="proceedButton" disabled="true" value="Acknowledge" type="submit" />
<input type="hidden" name="layout" value="default" /> <?php echo JHTML::_( 'form.token' ); ?>
</form>
函数继续()
{
check=document.getElementById('checkToProceed');
proceedButton=document.getElementById('proceedButton');
如果(勾选,勾选)
{
proceedButton.disabled=false;
}
其他的
{
proceedButton.disabled=true;
}
}
没有错误和表结构是有点困难,但
可能您正试图将int数据类型作为字符串插入,例如user_id。请在使用数值时删除“”,因为它们不是字符串
例如:
INSERT INTO table_name
(id_field, string_field)
VALUES
({$id_value}, '{$string_value}');
没有错误和表结构是有点困难,但
可能您正试图将int数据类型作为字符串插入,例如user_id。请在使用数值时删除“”,因为它们不是字符串
例如:
INSERT INTO table_name
(id_field, string_field)
VALUES
({$id_value}, '{$string_value}');
我想可能有几件事,但“acknowledge”有一个拼写错误。在INSERT的列列表中,以及在INSERT
语句中使用的变量中,它拼写错误。当您指定该变量时,它的拼写是正确的
编辑:在与OP的聊天中完成了此操作。问题是此代码被用作Joomla文章中的一个片段。表单的帖子必须转到$\u服务器['REQUEST\u URI']
才能发回正确的位置。我认为可能有几件事,但“acknowledge”有拼写错误。在INSERT的列列表中,以及在INSERT
语句中使用的变量中,它拼写错误。当您指定该变量时,它的拼写是正确的
编辑:在与OP的聊天中完成了此操作。问题是此代码被用作Joomla文章中的一个片段。表单的帖子必须转到$\u服务器['REQUEST\u URI']
才能发回正确的位置。mysqli\u error()或mysql\u error()。mysqli\u error()或mysql\u error()。mysql\u error
()将从数据库返回最后一个错误
顺便说一下,您的代码将执行两次查询。只能使用一个对$db->query()
的调用
至于什么,如果有什么不对劲,那很难说。我没有看到任何明显的错误,但我确实想知道如何转义查询中使用的值。请参阅文档-如果这些值中的任何一个包含撇号,您的查询将被中断
我还看到一个拼写错误,“acknoledge”拼写为“acknowledge”,因此,如果数据库中的字段拼写正确,那么查询中将出现拼写错误的问题。同样,您的一些字段使用下划线
,而有些字段使用camelCase
名称。你只是在乞求像这样的打字错误。使用一种或另一种命名约定,并保持一致。如果您的字段名为employeeNumber
,并且您使用employee\u number
或employeeNumber
,则查询将失败。选择一个命名约定并坚持它,这样您就不会在每次编写查询时都猜测了 mysql\u error
()将返回数据库中的最后一个错误
顺便说一下,您的代码将执行两次查询。只能使用一个对$db->query()
的调用
至于什么,如果有什么不对劲,那很难说。我没有看到任何明显的错误,但我确实想知道如何转义查询中使用的值。请参阅文档-如果这些值中的任何一个包含撇号,您的查询将被中断
我还看到一个拼写错误,“acknoledge”拼写为“acknowledge”,因此,如果数据库中的字段拼写正确,那么查询中将出现拼写错误的问题。同样,您的一些字段使用下划线
,而有些字段使用camelCase
名称。你只是在乞求像这样的打字错误。使用一种或另一种命名约定,并保持一致。如果您的字段名为employeeNumber
,并且您使用employee\u number
或employeeNumber
,则查询将失败。选择一个命名约定并坚持它,这样您就不会在每次编写查询时都猜测了 使用使用-1-在数字字段周围加引号,虽然可能不合理,但不会导致错误。我想我可以使用以下方法进行故障排除:如果($Db->getErrorNum()){JError::raiseError(500,$Db->stderr());}
但不会引发错误,除非发布到另一页,我被重定向到站点主页,这就是为什么我看不到错误?-1-数字字段周围的引号,虽然可能不合理,但不会导致错误。我想我可以使用以下方法进行故障排除:if($Db->getErrorNum()){JError::raiseError(500,$Db->stderr());}
但不会引发错误,除非是发布到另一个页面,否则我会被重定向到站点主页,这就是为什么我看不到错误?这是可能的,但值得指出。不管怎样,变量名在设置时拼写正确,但在使用时拼写不正确。我更改并检查了变量和表列,它们现在拼写正确,但这并没有解决问题,我添加了if($Db->getErrorNum()){JError::raiseError(500,$Db->stderr());}但是在显示错误之前,页面似乎正在重定向。您确定生成了错误吗?您是否验证了proceedButton
的值不是空的?如果是,则不会命中任何数据库代码。我只是更新了完整的代码,删除了所有值,并尝试插入一个简单的字符串进行测试。。但是没有插入任何内容,我可能遗漏了一些东西,这些东西让我相信你的声明失败了。我将查找checkToProceed的值,而不是检查proceedButton
的值<