为什么我的python shell的mysql查询不会进入Web托管数据库

时间:2014-06-17 00:15:04

标签: php python mysql

好的,所以我有以下代码,我在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*/
?>

3 个答案:

答案 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。