好的,所以我有以下代码,我在python shell中运行:
import MySQLdb
db = MySQLdb.connect(host = "xxxx",user="xxxx"password="xxxx",db="xxxx")
cur = db.cursor()
cur.execute(CREATE TABLE qqqq (asdf VARCHAR(20),fdsa VARCHAR(20))
确定连接部分正常工作,如果输入错误的值,或者拒绝访问数据库以获取计算机的IP地址,我将收到错误。
在webhosting服务器上,我有以下基本的index.php文件,我在我的计算机上的服务器上测试过,我知道有效。当我进入网站域时,我收到以下错误:“数据库查询失败。”任何想法为什么MySQL查询不起作用?我的网站主机是带有godaddy.com的Cpanel,我应该寻找别的吗?
<?php
$dbhost = "xxxx";
$dbuser = "xxxx";
$dbpass = "xxxx";
$dbname = "xxxx";
$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname); /*1*/
if(mysqli_connect_errno()) {
die("Database connection failed: " .
mysqli_connect_error() .
" (" . mysqli_connect_errno() . ")"
);
}
?>
<?php
$query ="SELECT * FROM qqqq"; /*2*/
$result = mysqli_query($connection, $query);
if (!$result) {
die("Database query failed.");
}
?>
<!DOCTYPE html PUBLIC >
<html lang="en">
<head>
<title></title>
</head>
<body>
<ul>
<?php /*3*/
while($subject = mysqli_fetch_assoc($result)){
?><li><?php echo $subject['asdf'];?></li>
<?php
}
?>
</ul>
<?php
mysqli_free_result($result); /*4*/
?>
</body>
</html>
<?php
mysqli_close($connection); /*5*/
?>
答案 0 :(得分:1)
您应该调用db.commit()来完成它。默认情况下,自动提交已关闭。
您的代码中也有错误。 SQL应该是一个字符串。
答案 1 :(得分:0)
游标执行不应该调用字符串吗?你的sql语句没有引号。
答案 2 :(得分:0)
没有配额的这一行不正确:
cur.execute(CREATE TABLE qqqq (asdf VARCHAR(20),fdsa VARCHAR(20))
应该是
cur.execute("CREATE TABLE qqqq (asdf VARCHAR(20),fdsa VARCHAR(20))")
因此,在您的数据库中测试您是否真的有表qqqq
您可以安装SQL Buddy或phpMyAdmin。