gpt4 book ai didi

PHP mysqli() 不工作

转载 作者:行者123 更新时间:2023-11-29 13:12:04 25 4
gpt4 key购买 nike

首先,我是 PHP 新手,这是我在 stackoverflow 上的第一篇文章。我正在尝试使用 mysqli_connect() 将记录写入测试数据库中的用户表。在 mysql-client 中,我可以使用以下命令添加记录:

INSERT INTO users VALUES ( 'id' , 'smith' , 'joe' , 'joepass' );

据我所知,以下 .php 页面在浏览器中点击时应将 joe smith 添加到用户表中:

<?php
echo "php start";

$con = mysqli_connect( "localhost" , "root" , "rootpass" , "db_name");

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_query( $con , "INSERT INTO users values ( 'id' , 'smith' , 'joe' , 'joepass' )");

mysqli_close($con);

echo "php end";
?>

但是当我在浏览器中访问此页面时,我看到的只是文本“php start”,这是第一个 echo 语句。我希望也能看到“php end”这个词。当我检查 mysql 客户端中的用户表时,我没有看到新记录。另外,当我使用 php -a 打开 php 交互式 shell 时并运行命令mysqli_connect();响应是PHP Fatal error: Call to undefined function mysql_connect() in php shell code on line 1 .

这让我相信 mysqli_connect 没有在 php.ini 中正确安装或配置,但我对 php.ini 没有足够的了解,无法很好地进行故障排除。另外,我有一个 phpinfo() test.php 页面。在 phpinfo() 的“Credits”表中,我看到以下几行:

MySQL driver for PDO    George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlueter
MySQL Zeev Suraski, Zak Greant, Georg Richter, Andrey Hristov

要在此 Ubuntu 服务器上安装 php、apache 和 mysql,我运行的命令是:

sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install php5-cli

我记得做过的唯一附加配置是将几个文件名添加到 apache2/mods-available/dir.conf线DirectoryIndex自动打开某些文件名。

有没有mysqli功能使用前需要做什么配置?

此外,这是一个 AWS 服务器,但我不明白“localhost”怎么会出现任何网络问题...:P

我还将添加一个 grep -r 'mysqli'输出在 /etc/php5目录:

php5 grep -r 'mysqli'
apache2/php.ini:; http://php.net/mysqli.max-persistent
apache2/php.ini:mysqli.max_persistent = -1
apache2/php.ini:; http://php.net/mysqli.allow_local_infile
apache2/php.ini:;mysqli.allow_local_infile = On
apache2/php.ini:; http://php.net/mysqli.allow-persistent
apache2/php.ini:mysqli.allow_persistent = On
apache2/php.ini:; http://php.net/mysqli.max-links
apache2/php.ini:mysqli.max_links = -1
apache2/php.ini:; http://php.net/mysqli.cache_size
apache2/php.ini:mysqli.cache_size = 2000
apache2/php.ini:; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
apache2/php.ini:; http://php.net/mysqli.default-port
apache2/php.ini:mysqli.default_port = 3306
apache2/php.ini:; http://php.net/mysqli.default-socket
apache2/php.ini:mysqli.default_socket =
apache2/php.ini:; http://php.net/mysqli.default-host
apache2/php.ini:mysqli.default_host =
apache2/php.ini:; http://php.net/mysqli.default-user
apache2/php.ini:mysqli.default_user =
apache2/php.ini:; Default password for mysqli_connect() (doesn't apply in safe mode).
apache2/php.ini:; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
apache2/php.ini:; http://php.net/mysqli.default-pw
apache2/php.ini:mysqli.default_pw =
apache2/php.ini:mysqli.reconnect = Off
cli/php.ini:; http://php.net/mysqli.max-persistent
cli/php.ini:mysqli.max_persistent = -1
cli/php.ini:; http://php.net/mysqli.allow_local_infile
cli/php.ini:;mysqli.allow_local_infile = On
cli/php.ini:; http://php.net/mysqli.allow-persistent
cli/php.ini:mysqli.allow_persistent = On
cli/php.ini:; http://php.net/mysqli.max-links
cli/php.ini:mysqli.max_links = -1
cli/php.ini:; http://php.net/mysqli.cache_size
cli/php.ini:mysqli.cache_size = 2000
cli/php.ini:; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
cli/php.ini:; http://php.net/mysqli.default-port
cli/php.ini:mysqli.default_port = 3306
cli/php.ini:; http://php.net/mysqli.default-socket
cli/php.ini:mysqli.default_socket =
cli/php.ini:; http://php.net/mysqli.default-host
cli/php.ini:mysqli.default_host =
cli/php.ini:; http://php.net/mysqli.default-user
cli/php.ini:mysqli.default_user =
cli/php.ini:; Default password for mysqli_connect() (doesn't apply in safe mode).
cli/php.ini:; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
cli/php.ini:; http://php.net/mysqli.default-pw
cli/php.ini:mysqli.default_pw =
cli/php.ini:mysqli.reconnect = Off

最佳答案

phpinfo() 的 mysqli 部分怎么样?有吗?我怀疑你需要安装 php5-mysql 软件包。安装该软件包后我看到了这一点:

~$ cat /etc/php5/conf.d/mysqli.ini 
; configuration for php MySQL module
extension=mysqli.so

关于PHP mysqli() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com