Tag: mysqli

在MySQLi中select* FROM

我的网站是相当广泛的,我最近刚刚切换到PHP5(称我是一个晚布卢姆)。 我之前的所有MySQL查询都是这样构build的: "SELECT * FROM tablename WHERE field1 = 'value' && field2 = 'value2'"; 这使得它非常简单,友好。 我现在正在尝试切换到mysqli出于明显的安全原因,我很难搞清楚当bind_param需要特定参数时如何实现相同的SELECT * FROM查询。 这种说法是过去的事情吗? 如果是这样,我如何处理涉及大量列的查询? 我真的需要每次input它们吗?

mysqli:它可以在一个语句中准备多个查询吗?

我想知道如果我可以准备一个执行多个查询的mysqli语句: mysqli->prepare(query1 …1,2,3 param…; query2…4,5 param…); or mysqli->prepare(insert into …1,2,3 param…; insert into…4,5 param…); and after all mysqli->bind_param("sssss", 1, 2, 3, 4, 5); 这样就会出错:调用一个成员函数bind_param()在一个非对象在… $stmt = $sql->getQueryPrepare("INSERT INTO user (id_user, username, pw, email) VALUES (?,?,?,?); INSERT INTO process (id_user, idp) VALUES (?,?);"); $stmt->bind_param("ssssss",$id, $username, $pw, $email, $id, $idp); $stmt->execute(); $stmt->close();

如何从PHP代码中调用MySQL存储过程?

我有我在MySQL中创build的存储过程,并希望PHP调用该存储过程。 什么是最好的方法来做到这一点? -MySQL客户端版本:4.1.11 -MySQL服务器版本:5.0.45 这是我的存储过程: DELIMITER $$ DROP FUNCTION IF EXISTS `getNodeName` $$ CREATE FUNCTION `getTreeNodeName`(`nid` int) RETURNS varchar(25) CHARSET utf8 BEGIN DECLARE nodeName varchar(25); SELECT name into nodeName FROM tree WHERE id = nid; RETURN nodeName; END $$ DELIMITER ; 什么是PHP代码来调用过程getTreeNodeName?

PHP MySQLI阻止SQL注入

我已经build立了一个网站,将很快上线,只是有一些关于防止SQL注入的问题,我明白如何使用mysqli_real_escape_string但我只是想知道是否我必须使用所有我得到的variables我的SQL语句,我必须使用它时,我还做select语句还是只插入更新和删除? 还有什么其他的安全性,你会build议我实施之前,我把网站住,预先感谢任何帮助!

为什么mysqli num_rows总是返回0?

我一直无法获得使用mysqli返回的行数。 我只是每次回到0,即使有肯定的结果。 if($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")){ $stmt->bind_param('s', $data->id); $stmt->execute(); $num_of_rows = $stmt->num_rows; $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent); while($stmt->fetch()){ //code } echo($num_of_rows); $stmt->close(); } 为什么不显示正确的数字?

CodeIgniter:无法使用提供的设置错误消息连接到您的数据库服务器

我一直在使用CI很好,使用MySQL驱动程序。 我想使用mysqli驱动程序,但只要我改变它(只需添加“我”在MySQL的末尾,并添加了端口号),我得到以下错误信息 A Database Error Occurred Unable to connect to your database server using the provided settings. Filename: core/Loader.php Line Number: 232 我的设置看起来像这样: $db['default']['hostname'] = $hostname; $db['default']['username'] = $username; $db['default']['password'] = $password; $db['default']['database'] = $database; $db['default']['dbdriver'] = 'mysqli'; $db['default']['port'] = "3306"; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = […]

mysqli或死亡,是否必须死亡?

如果我使用一些这样的代码: $update_result = mysqli_query( $link , $sql_update_login ) or die ('Unable to execute query. '. mysqli_error($link)); 它是否必须死亡,或者你可以在之后提出一个不同的查询? 就像将错误日志写入另一个表的预定义函数一样? 如: $update_result = mysqli_query( $link , $sql_update_login ) or function('$query, $error); “或”之后的其他选项是什么? 我没有在文档中find它,任何线索表示赞赏。

我如何将我的网站从MySQL迁移到mysqli?

有什么我需要做的数据库端,或者只是PHP的变化? 我可以用mysqli函数replacemysql函数吗? 还有什么我应该知道的?

标题和客户端库次要版本不匹配

在PHP中,每当我尝试连接到数据库(通过mysql_connect )时,我都会收到以下警告: 警告:mysql_connect():标题和客户端库次要版本不匹配。 标题:50162图书馆:50524 在我的php -i输出中,我在mysqli下列出了以下值 客户端API库版本=> 5.5.24 客户端API头版本=> 5.1.62 我试过更新php5-mysql 和 php,但我已经在他们的最新版本。 我如何去更新标题版本,所以我不再看到这个警告? 编辑 我的MySQL文件应该全部更新为最新版本: $ apt-get install mysql.*5.5 . . . mysql-client-5.5 is already the newest version. mysql-server-core-5.5 is already the newest version. mysql-server-5.5 is already the newest version. mysql-testsuite-5.5 is already the newest version. mysql-source-5.5 is already the newest version. 删除旧版本 $ […]

MySQL,MySQLi和PDO有什么区别?

MySQL, MySQLi和PDO有什么区别? 哪一个最适合与PHP-MySQL一起使用?