这是我的代码。我正在尝试运行它时,我一直收到服务器500错误。
//Insert DATA in db
global $wpdb;
$table_name='customers';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
ID int AUTO_INCREMENT NOT NULL,
refnumber varchar(255) NOT NULL,
primary key (id)
)$charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
$wpdb->insert( $table_name,
array( 'refnumber' => $customer['id']
)
);
我不确定我做错了什么。我过去使用类似的代码几乎就像这个代码一样成功。
更新1:
好的,所以我打开了wp debug,没有显示任何新内容,我只是得到了500页的常见错误。
直接在数据库上测试我的SQL语法。它有效。
使用在线工具测试我的php语法,没有错误。
还部分纠正了我的代码,结果是所有内容都没有任何错误地执行,甚至错误500也不再出现。
但是!我的数据库实际上并没有创建,在WP的数据库中我只看到我手动创建的表。
我今天工作了4个小时,我找不到我做错了什么。此外,尝试将变量插入到我已创建的数据库中,未显示任何错误,但未添加任何内容。
我搜索了其他类似的问题,但看起来我是唯一一个有这个问题的人。
答案 0 :(得分:0)
int
似乎对其要求有点严格。我没有那么多工作,但是这个页面表明,即使$charset_collate
需要一个长度:https://codex.wordpress.org/Creating_Tables_with_Plugins#Creating_or_Updating_the_Table
我不确定代码中def getExpenses():
userExpense = 0
totalExpenses = 0
moreExpenses = ""
while moreExpenses != "y":
userExpense = float(input("Enter an expense: "))
totalExpenses = totalExpenses + userExpense
moreExpenses = input("Do you have more expenses? Type y" +\
" to input more expenses, or any key for no: ")
return totalExpenses
之前是否没有空格,但它们在该页面的示例中还包含了一个空格。